PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Auf den Weg zum stärksten Schach-Programm der Welt



Norman_RKN
23.08.2013, 02:03
Hallo eine zusammenfassung von Patrick22 für die die interesse haben mal was anderes zu rechnen.

Videoanleitung (english): https://www.youtube.com/watch?v=jePuj9-T4oU

Norman
---------------


Zum stärksten Schach-Programm der Welt durch Distributed Computing.

Zur Zeit wird das Open Source Schach Programm Stockfish sehr erfolgreich durch verteiltes Rechnen weiterentwickelt.
Die Weiterentwicklung des Programms steht jeden zur Verfügung und es ist sogar auf Android-Handys kostenlos verfügbar.

Stockfish ist somit auf dem besten Weg das stärkste Schachprogramm (Engine) der Welt zu werden, es fehlt lediglich noch an weiterer Rechenpower um das Projekt schneller voranzutreiben, denn zur Zeit beteiligen sich nur ca. 10-30 Leute Weltweit.

Gruß
Patrick

die Anzahl Kerne, die fürs Schach zur Verfügung gestellt werden, dürfen nicht von anderen Programmen belastet werden, nicht mal vom Betriebssystem, deswegen muss auch immer ein Kern frei bleiben.
--------------------

Es gibt viele Klicks, aber bis jetzt keiner der Interesse hat mitzumachen.
Falls doch jemand mitmachen möchte, versuche ich es so einfach wie möglich zu machen und habe dafür eine Anleitung auf deutsch für Windows Nutzer geschrieben:

Entweder über die Links der Webseite Stockfish.org -> "Get Involved" -> "add your computer to the pool" aufrufen
oder über diesen direktLink:
https://github.com/glinscott/fishtest/blob/master/README.md
die Englisch Anleitungsseite für Linux und Windows aufrufen.

Und dann geht es für Windows so:

1.
Python 2.7.x for x86 downloaden , über den Link

http://www.python.org/ftp/python/2.7.4/python-2.7.4.msi

ausführen und mehrmals "Next" klicken bis es installiert ist.
( Ausführlich geschrieben : 1. Für alle User installieren 2. Auf wunsch Verzeichnis auswählen 3. mit allen Features installieren 4. Okay klicken, fertig)

2.
Dann das Hauptprogramm "fishtest-master" runterladen über den Link

https://github.com/glinscott/fishtes...ive/master.zip

und entpacken, z.b. in "c:\fishtest-master\worker\"
Dann sich über den Link

http://tests.stockfishchess.org/signup

anmelden, einfach Username/Password/ E-Mail eintragen und sofort ist man angemeldet.

4.
Dann das Hauptprogramm "fishtest-master" starten:

Dazu im Unterordner "worker" eine Kommandozeile (*) öffnen, z.B. in "c:\fishtest-master\worker\"
dann eingeben:

'c:\Python27\python.exe worker.py --concurrency <cores> <username> <password>'

Erklärung:
a) "c:\Python27" ist das Verzeichnis in dem Python installiert wurde.
b) --concurrency <cores> ist die Anzahl Kerne die zur Verfügung gestellt werden ( ohne Hyperthreaded Kerne), ein Kern muss für das Betriebssystem übrig gelassen werden.
Habt ihr 2 Kerne gebt ihr --concurrency 1 ein
Habt ihr 4 Kerne gebt ihr --concurrency 3 ein
Habt ihr 6 Kerne gebt ihr --concurrency 5 ein
Habt ihr 8 Kerne gebt ihr --concurrency 7 ein
Habt ihr 12 Kerne gebt ihr --concurrency 11 ein
Für i5 und i7 CPUs wäre das also "--concurrency 3"
c) <username> <password> , das Eintragen was Ihr bei der Anmeldung angegeben habt.

Mit allen Eintragungen und sieht es also z.B. so aus:
c:\Python27\python.exe worker.py --concurrency 3 test 123456

Enter drücken und los geht's.

(*) So startet man die Kommandozeile in einem bestimmten Verzeichnis z.B. in "c:\fishtest-master\worker\"
http://www.tippscout.de/windows-7-ko...tipp_4369.html

---------- Beitrag hinzugefügt um 01:10 ---------- Vorheriger Beitrag um 01:05 ----------

Und wenn Ihr das alles gemacht habt sieht die Ausgabe des laufenden Programm so aus:

C:\more\fishtest-master\worker>C:\python27\python.exe worker.py --concurrency 1
test 123456
Worker version 38 connecting to http://tests.stockfishchess.org:80
Downloaded stockfish.exe from http://fishtest.s3.amazonaws.com/binaries/75f8106d
c57d862c072f8b8270c9388a526620a0_windows_64
Downloaded base.exe from http://fishtest.s3.amazonaws.com/binaries/f45eee318bbe0
fe1465bda80bf62bc8b3bc7d07c_windows_64
Downloading 8moves_GM.pgn ...
Downloading cutechess-cli-win.zip ...
Verifying signature of stockfish.exe ...
Verifying signature of base.exe ...
CPU factor : 1.253201 - tc adjusted to 18.80+0.05
Running null2 vs fmaster
C:\more\fishtest-master\worker\testing\cutechess-cli.exe -repeat -rounds 890 -to
urnament gauntlet -pgnout results.pgn -resign movecount=3 score=400 -draw movenu
mber=34 movecount=8 score=20 -concurrency 1 -openings file=8moves_GM.pgn format=
pgn order=random plies=16 -engine name=stockfish cmd=stockfish option.Hash=128 o
ption.OwnBook=false -engine name=base cmd=base option.Hash=128 option.OwnBook=fa
lse -each proto=uci option.Threads=1 tc=18.80+0.05
Indexing opening suite...
Started game 1 of 890 (stockfish vs base)
Finished game 1 (stockfish vs base): 1/2-1/2 {Draw by 3-fold repetition}
Score of stockfish vs base: 0 - 0 - 1 [0.500] 1
Started game 2 of 890 (base vs stockfish)
Finished game 2 (base vs stockfish): 1/2-1/2 {Draw by adjudication}
Score of stockfish vs base: 0 - 0 - 2 [0.500] 2
Started game 3 of 890 (stockfish vs base)
Finished game 3 (stockfish vs base): 1-0 {White wins by adjudication}
Score of stockfish vs base: 1 - 0 - 2 [0.667] 3
Started game 4 of 890 (base vs stockfish)

usw.

die Ergebnisse könnt Ihr dann live auf dieser Seite verfolgen:
http://tests.stockfishchess.org/tests

PS.: die Anzahl Kerne, die fürs Schach zur Verfügung gestellt werden, dürfen nicht von anderen Programmen belastet werden, nicht mal vom Betriebssystem, deswegen muss auch immer ein Kern frei bleiben.

Patrick22
23.08.2013, 10:54
Danke Norman!

Hoshione
24.08.2013, 18:08
Hy , Du solltest mal deinen ersten Link checken....DER stimmt nicht, es zeigt nur das ;)

Dr. Frank-N-Furter
24.08.2013, 21:52
Hy , Du solltest mal deinen ersten Link checken....DER stimmt nicht, es zeigt nur das ;)


hmmm - high-performance computing mit 'nem interpreter?

schräge idee... :eek:

Patrick22
25.08.2013, 12:42
Stimmt, hier noch einmal mit funktionierenden Links.

Zusätzlich hier auch noch einen Link mit dem aktuellen Stand und Status:
http://tests.stockfishchess.org/tests

Endweder über die Links der Webseite Stockfish.org -> "Get Involved" -> "add your computer to the pool" aufrufen
oder über diesen direktLink:

https://github.com/glinscott/fishtest/blob/master/README.md

die Englisch Anleitungsseite für Linux und Windows aufrufen.

Und dann geht es für Windows so:

1.
Python 2.7.x for x86 downloaden , über den Link

http://www.python.org/ftp/python/2.7.4/python-2.7.4.msi

ausführen und mehrmals "Next" klicken bis es installiert ist.
( Ausführlich geschrieben : 1. Für alle User installieren 2. Auf wunsch Verzeichnis auswählen 3. mit allen Features installieren 4. Okay klicken, fertig)

2.
Dann das Hauptprogramm "fishtest-master" runterladen über den Link

https://github.com/glinscott/fishtest/archive/master.zip

und entpacken, z.b. in "c:\fishtest-master\worker\"
Dann sich über den Link

http://tests.stockfishchess.org/signup

anmelden, einfach Username/Password/ E-Mail eintragen und sofort ist man angemeldet.

4.
Dann das Hauptprogramm "fishtest-master" starten:

Dazu im Unterordner "worker" eine Kommandozeile (*) öffnen, z.B. in "c:\fishtest-master\worker\"
dann eingeben:

'c:\Python27\python.exe worker.py --concurrency <cores> <username> <password>'

Erklärung:
a) "c:\Python27" ist das verzeichnis in dem Python installiert wurde.
b) --concurrency <cores> ist die Anzeahl Kerne die zur Verfügung gestellt werden ( ohne Hyperthreaded Kerne), ein Kern muss für das Betriebssystem übriggelassen werden.
Habt ihr 2 Kerne gebt ihr --concurrency 1 ein
Habt ihr 4 Kerne gebt ihr --concurrency 3 ein
Habt ihr 6 Kerne gebt ihr --concurrency 5 ein
Habt ihr 8 Kerne gebt ihr --concurrency 7 ein
Habt ihr 12 Kerne gebt ihr --concurrency 11 ein
Für i5 und i7 CPUs wäre das also "--concurrency 3"
c) <username> <password> , das Eintragen was Ihr bei der Anmeldung angegeben habt.

Mit allen Eintragungen und sieht es also z.B. so aus:
c:\Python27\python.exe worker.py --concurrency 3 test 123456


Enter drücken und los geht's.



(*) So startet man die Kommandozeile in einem bestimmten Verzeichnis z.B. in "c:\fishtest-master\worker\"
http://www.tippscout.de/windows-7-kommandozeile-in-bestimmtem-verzeichnis-starten_tipp_4369.html

*************************
Und wenn Ihr das alles gemacht habt sieht die Ausgabe des laufenden Programm so aus:

C:\more\fishtest-master\worker>C:\python27\python.exe worker.py --concurrency 1
test 123456
Worker version 38 connecting to http://tests.stockfishchess.org:80
Downloaded stockfish.exe from http://fishtest.s3.amazonaws.com/binaries/75f8106d
c57d862c072f8b8270c9388a526620a0_windows_64
Downloaded base.exe from http://fishtest.s3.amazonaws.com/binaries/f45eee318bbe0
fe1465bda80bf62bc8b3bc7d07c_windows_64
Downloading 8moves_GM.pgn ...
Downloading cutechess-cli-win.zip ...
Verifying signature of stockfish.exe ...
Verifying signature of base.exe ...
CPU factor : 1.253201 - tc adjusted to 18.80+0.05
Running null2 vs fmaster
C:\more\fishtest-master\worker\testing\cutechess-cli.exe -repeat -rounds 890 -to
urnament gauntlet -pgnout results.pgn -resign movecount=3 score=400 -draw movenu
mber=34 movecount=8 score=20 -concurrency 1 -openings file=8moves_GM.pgn format=
pgn order=random plies=16 -engine name=stockfish cmd=stockfish option.Hash=128 o
ption.OwnBook=false -engine name=base cmd=base option.Hash=128 option.OwnBook=fa
lse -each proto=uci option.Threads=1 tc=18.80+0.05
Indexing opening suite...
Started game 1 of 890 (stockfish vs base)
Finished game 1 (stockfish vs base): 1/2-1/2 {Draw by 3-fold repetition}
Score of stockfish vs base: 0 - 0 - 1 [0.500] 1
Started game 2 of 890 (base vs stockfish)
Finished game 2 (base vs stockfish): 1/2-1/2 {Draw by adjudication}
Score of stockfish vs base: 0 - 0 - 2 [0.500] 2
Started game 3 of 890 (stockfish vs base)
Finished game 3 (stockfish vs base): 1-0 {White wins by adjudication}
Score of stockfish vs base: 1 - 0 - 2 [0.667] 3
Started game 4 of 890 (base vs stockfish)

die Ergebnisse könnt Ihr dann live auf dieser Seite verfolgen:
http://tests.stockfishchess.org/tests


Hinzugefügter Post:


hmmm - high-performance computing mit 'nem interpreter?

schräge idee... :eek:

Wenn man es einmal installiert hat, macht es keinen Unterschied mehr.
Und grafisch aufbereitet kann man dann alles LIVE auf dieser Webseite verfolgen:
http://tests.stockfishchess.org/tests

Dr. Frank-N-Furter
25.08.2013, 14:48
Wenn man es einmal installiert hat, macht es keinen Unterschied mehr.

.py ist gewöhnlich um grössenordungen langsamer als der bytecode. den der compiler erzeugen würde.

insofern ist das einfach nur eine riesige resourcenverschwendung.

Norman_RKN
25.08.2013, 17:10
kann sich ja gerne jemand daran setzen und den code umbasteln in C/C++/C#/Java oder sonstwas schnellerem.
die entwickler würden sich bestimmt freuen.
ist alles noch ziemlich ALPHA-status.

Dr. Frank-N-Furter
25.08.2013, 17:29
kann sich ja gerne jemand daran setzen und den code umbasteln in C/C++/C#/Java oder sonstwas schnellerem.
die entwickler würden sich bestimmt freuen.
ist alles noch ziemlich ALPHA-status.

erstmal nicht nötig - es gibt auch compiler für python. das sollte einen ordentlichen schub bringen.

Norman_RKN
25.08.2013, 17:36
jedenfalls das fertige produkt gibt es in ordentlich compilierter form:

http://abrok.eu/stockfish/

http://stockfishchess.org/download/

ich nehme an sie nehmen es der einfachheit halber zum entwickeln/testen einfach in python und fertig.
keine ahnung warum.

Dr. Frank-N-Furter
25.08.2013, 17:37
jedenfalls das fertige produkt gibt es in ordentlich compilierter form:

http://abrok.eu/stockfish/

http://stockfishchess.org/download/

ich nehme an sie nehmen es der einfachheit halber zum entwickeln/testen einfach in python und fertig.
keine ahnung warum.

tja, das verstehe ich dann wirklich nicht.

btw.: irgendwer schraubt an einem jit-compiler für python auf cuda-karten. ;)

Norman_RKN
25.08.2013, 18:08
ja das ist mir auch schon in den sinn gekommen bzw. warum das noch keiner gemacht hat :D
nunja, schlecht ist das bestimmt nicht :cool::thumbup:

Patrick22
25.08.2013, 21:51
Mit der Ressourcenverschwendung liegt ihr zum Glück alle falsch. :-)
Python wird nur für die Umgebung genutzt, zum Austauschen der Informationen, die Schachkerne selbst bestehen aus effizienten C Code und sind hoch optimiert.
Die Schachprogramme nehmen dabei deutlich über 99,9% und Python deutlich weniger als 0,1% der Gesamtleistung in Anspruch.

Dr. Frank-N-Furter
25.08.2013, 22:03
Mit der Ressourcenverschwendung liegt ihr zum Glück alle falsch. :-)
Python wird nur für die Umgebung genutzt, zum Austauschen der Informationen, die Schachkerne selbst bestehen aus effizienten C Code und sind hoch optimiert.
Die Schachprogramme nehmen dabei deutlich über 99,9% und Python deutlich weniger als 0,1% der Gesamtleistung in Anspruch.

gut!

Norman_RKN
25.08.2013, 22:27
tja, wenn es nur die umgebung ist dann ist das alles gut zu verschmerzen :)
let´s play chess ^^