Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Spielstärke von SF bei verschiedener Thread-Anzahl und Plys=20
- - By Benno Hartwig Date 2020-02-09 08:49 Edited 2020-02-09 08:51
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!
Parent - - By Reinhold Stibi Date 2020-02-09 10:11
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.
Parent - By Michael Scheidl Date 2020-02-09 11:24
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...
Parent - - By Tom Paul Date 2020-02-09 12:03
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.
Parent - By Benno Hartwig Date 2020-02-09 13:17 Edited 2020-02-09 13:20
...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.
- - By Benno Hartwig Date 2020-02-10 21:14
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!
Parent - By Michael Scheidl Date 2020-02-10 22:34 Upvotes 1
Wenn das unglückliche cuts wären, dann wär ja Stockfish nicht die nummer eins. Normalerweise wird auf zeit gespielt und analysiert und nicht auf tiefe und auch nicht auf nodes... Es sind also offenbar nahezu "optimale" treffsichere cuts (und extensions!) unter gleichen vernünftigen zeit- und hardwarebedingungen. Ohne deine tiefenbegrenzung kommt ja SF mit bis zu 4 threads/2 cpu im allgemeinen tiefer. Damit meine ich, im gleichen bedenkzeitrahmen.

Vorschlag, laß einmal 64 threads gegen einen thread auf deiner hardware bei 5m+1s oder so, aber ohne tiefenbegrenzung laufen. (Ich wundere mich daß das überhaupt technisch möglich ist...)
Up Topic Hauptforen / CSS-Forum / Spielstärke von SF bei verschiedener Thread-Anzahl und Plys=20

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill