Ich habe auf dem i5-Rechner (2 reale Kerne, per Hyperthreading dann eben 4) ein Turnier durchgeführt mit Einstellung "Plys=20".
Seinerzeit hatte ich mal vermute, dass die Spielstärke dann wohl gleich wäre, dass sich nur die Zeiten unterscheiden würden.
Dass hier auf dieser Kiste jetzt also 2 Threads oder eben auch 4 Threads (je nachdem, wie sich Hyperthreading auswirkt) die schnellste Variante wäre.
Nun war aber schon etwas später klar geworden, dass dies nicht so ist, dass SF bei mehr Threads mehr macht als einfach nur schneller zu sein.
Aber ich war trotzdem sehr(!!!) überrascht, wie sehr deutlich spielstärkesteigernd mehr Threads sind, auch wenn immer nur mit festern Tiefe 20 gerechnet wird:
1: Stockfish_20011801_t16 203,0/324
2: Stockfish_20011801_t08 179,0/323
3: Stockfish_20011801_t05 173,0/323
4: Stockfish_20011801_t04 162,0/323
5: Stockfish_20011801_t03 150,5/323
6: Stockfish_20011801_t02 144,5/324
7: Stockfish_20011801_t01 120,0/324
Und ich habe tatsächlich gar keine Ahnung, was SF da für wundersame Dinge findet, wenn es in den ersten 20 Plys mit reichlich Threads sucht.
Oder andersherum: was SF so alles verloren geht innerhalb der Suchtiefe, die er ja eigentlich analysiert haben möchte, wenn er nur mit "lausigen" 1, 2 oder 4 Threads arbeitet?
Hat das jemand verstanden, kann das jemand skizzieren?
PS:
Die benötigten Zeiten, und damit auch die Anzahl der analysierten Knoten, gingen tatsächlich auch reichlich in die Höhe, wenn die Anzahl der Threads wuchs. Und das eben bei immer gleicher Suchtiefe 20!
Das dürfte wohl logisch sein, dass die Anzahl der Knoten getrennt ist von der Suchtiefe.
Die Spielstärke nimmt natürlich auch bei dieser geringen Anzahl der CPUs (2) und der Anzahl er Threads (4)
bei einer Verdoppelung erheblich zu.
Anders sieht es z.B. bei CPUs 24 zu 48 aus. Da bringt die Verdoppelung viel weniger, weil der beste Zug
schon mit 24 CPUs gefunden wurde; was sollen denn da noch 48 CPUs bringen.
Benno bezieht sich hier auf eine immer gleiche, fix eingestellte suchtiefe 20. Somit stellt sich die frage sozusagen anders als im allgemeinen.
Soviel ich hin und wieder gelesen habe, entsteht bei multithreading zur selben tiefe ein "anderer suchbaum" und soweit ich verstehe, muß der wohl breiter werden um stärker zu werden obwohl er nicht tiefer geht. Allerdings betrifft letzteres ja nur die grundanzahl der iterationen, d.h. ich könnte mir vorstellen daß die menge nützlicher extensions ebenfalls zunimmt. Die gehen ja gerne in absurde tiefen.
Ich selber habe mich damit nie näher befaßt bzw. nichts gemessen, aber zusammengefaßt: Ich glaube die suchbäume werden breiter, und (somit) möglicherweise auch die extensions zahlreicher.
An sich kann das nur ein kompetenter programmierer gut beantworten, der genau weiß wie und was da abläuft...
Entweder lässt du alle Threads laufen, was logisch ist oder du verwendest nur die echten Kerne und übertaktest diese, was auch logisch ist und eigentlich noch ein bisschen besser.
...oder ich gehe so vor, wie ich es beschrieb.
Es ging mir ja nicht darum, die Spielstärke zu maximieren, sondern darum, ein Verständnis von der Arbeitsweise von SF bei Verwendung mehrerer (und ggf. auch vieler) Threads zu erhalten.
Und dann überfiel mich ein böser Zug und ich ließ auf meiner kleinen 2-Kern-Kiste den SF mit 64 Threads(!!!) gegen das Feld antreten. Zumindest mal über eine kürzere Distanz.
Immer genau mit Plys=20.
Die Varianten mit sehr vielen Threads brauchten dafür deutlich mehr Zeit, die 64-Thread-Variante sogar 5 mal soviel wie schnelle Gegner.
Aber ich finde trotzdem interessant, dass sie innerhalb dieser 20 Plys (also NICHT dank größerer Tiefe!!!) so deutlich an Erkenntnis gewannen, dass ihnen so deutlich bessere Züge, so deutliche Erfolge möglich waren.
Oder andersherum:
Welche sind die unglückliche Cuts, die SF mit wenigen Threads immer mal wieder macht, und die ihm die stärkeren Züge verhindern?
Stockfish_20011801_t64 103,0/150 68.7
Stockfish_20011801_t16 211,0/345 61,2
Stockfish_20011801_t08 188,0/345 54,5
Stockfish_20011801_t05 181,0/344 52,6
Stockfish_20011801_t04 167,5/344 48,7
Stockfish_20011801_t03 156,5/345 45,4
Stockfish_20011801_t02 150,0/345 43,5
Stockfish_20011801_t01 125,0/346 36,1
Also: Ich finde insbesondere die Eindeutigkeit dieser Staffelung sehr überraschend!