Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / SPCC: Testrun von Stockfish 150105 durch
- - By Stefan Pohl Date 2015-01-10 06:12 Upvotes 2
Testrun of Stockfish 150105 finished. Real big step forward. It seems, that the last nullmove-tuning-patch is very good against other engines (much better than in Framework-Selftests)

http://spcc.beepworld.de

(Perhaps you have to clear your browsercache or reload the website)
Parent - - By sachista Date 2015-01-10 09:33
Stefan Pohl schrieb:
Testrun of Stockfish 150105 finished. Real big step forward. It seems, that the last nullmove-tuning-patch is very good against other engines (much better than in Framework-Selftests)


Wow, damit wären wir jetzt bei +214 ELO gegenüber SF3 und das in weniger als 21 Monaten... hoffentlich bestätigen die folgenden Patches dieses Ergebnis
Danke für den Test, da freut man sich noch mehr auf SF6 und die dann anstehenden Ergebnisse in den anderen Ratinglisten.
Parent - By Stefan Pohl Date 2015-01-10 13:42
sachista schrieb:

Wow, damit wären wir jetzt bei +214 ELO gegenüber SF3 und das in weniger als 21 Monaten... hoffentlich bestätigen die folgenden Patches dieses Ergebnis


Tja, das muß man abwarten. Wie wir gerade gesehen haben, kann ein Ergebnis immer auch mal ausreißen. Aber der nächste Stockfish-Test kommt ja bestimmt bald. Mal sehen, wann weitere functional Patches kommen.
Jetzt lasse ich erst mal Mars 3.35 für meine kleine Top-Bullet Liste durchlaufen.

Stefan
Parent - - By Jörg Oster Date 2015-01-10 14:03
Stefan Pohl schrieb:

Testrun of Stockfish 150105 finished. Real big step forward. It seems, that the last nullmove-tuning-patch is very good against other engines (much better than in Framework-Selftests)

<a class='urs' href='http://spcc.beepworld.de'>http://spcc.beepworld.de</a>

(Perhaps you have to clear your browsercache or reload the website)

Wer weiß?
Aber ich tippe eher auf die beiden king safety patches ... 

Gruß, Jörg.
Parent - - By Tom Paul Date 2015-01-10 14:22
Was mich stört, ist die Anzahl der Partien die für das Tunen im Framework verwendet werden.
Man sieht dort fast immer 100000 played games.
M.M.n. ist das erstens viel zu wenig und zweitens wenn für das Tunen von einfachen Sachen im Schach 100000 verwendet wird, dann müsste man für die ganz komplexen Sachen deutlich mehr als 100000 verwenden. Z.B. x5
Parent - By Peter Martan Date 2015-01-10 14:48
Tom Paul schrieb:

wenn für das Tunen von einfachen Sachen im Schach 100000 verwendet wird, dann müsste man für die ganz komplexen Sachen deutlich mehr als 100000 verwenden. Z.B. x5


Was verstehst du unter "einfachen Sachen im Schach"?
Außerdem finde ich, je kleiner Veränderungen sind, deren Auswirkungen du testen willst, umso mehr Partien wären notwendig, um sie statistisch zu beweisen, je größer die Merkmalsdifferenz, desto kleiner die erforderliche Datenmenge für eine gleich große Signifikanz, oder?
Parent - - By Benno Hartwig Date 2015-01-10 16:08 Edited 2015-01-10 16:37

> Man sieht dort fast immer 100000 played games.
> M.M.n. ist das erstens viel zu wenig ...


Manchmal braucht man Statements gar nicht zu kommentieren, weil sie ihr eigenes unverkennbares Licht werfen.
Benno
Parent - By Joachim Mueller Date 2015-01-10 16:26
+1

Mittlerweile kann man schon von einer Art allergisch bedingten Aversion gegen die TP-Phrasen sprechen, bei mir jedenfalls.
Parent - - By Stefan Pohl Date 2015-01-10 15:10
Jörg Oster schrieb:

Stefan Pohl schrieb:

Testrun of Stockfish 150105 finished. Real big step forward. It seems, that the last nullmove-tuning-patch is very good against other engines (much better than in Framework-Selftests)

<a class='urs' href='<a class='ura' href='http://spcc.beepworld.de'>http://spcc.beepworld.de</a>'>http://spcc.beepworld.de</a>

(Perhaps you have to clear your browsercache or reload the website)

Wer weiß?
Aber ich tippe eher auf die beiden king safety patches ... 

Gruß, Jörg.


Mir wärs eigentlich egal, woran es letzlich liegt, hauptsache dieser Zuwachs ist wirklich so groß und ich hatte nicht schon wieder einen Errorbar-Ausreißer...In den Framework Regression-Tests wars jedenfalls nur etwa halb so viel Zuwachs wie bei mir gegen andere Gegner-Engines.

Gruß - Stefan
Parent - - By Michael Scheidl Date 2015-01-10 15:31
In der Ruhe liegt die Kraft Stockfish 6 kommt sehr bald und bis dahin brauchen wir keine blöden unnötigen Threads machen oder? Will irgendjemand mit -zig substanzlosen Postings den /%"$$$% Stih zerreden anstatt in Ruhe ein, zwei Wochen abzuwarten? Reißt Euch mal zuammen. Riesenlange Threads über statistisch fragwürdige Versionen usw. usf. STOP!! Dieser Schwachsinn muß ein anderer werden... (ein besserer)
Parent - By Benno Hartwig Date 2015-01-10 16:25 Edited 2015-01-10 16:29

> Reißt Euch mal zuammen


Und warum noch mal dürfen sich andere nicht für das interessieren, was sie ggf. interessiert?
 
Was ändert sich ggf. mit der nächsten Vollversion?
Z.B CEGT und CCRL präsentieren ihre Ergebnisse. Die von ihnen genutzte Partienzahl bietet aber ja nur weniger statistische Verlässlichkeit als Stefans Test.
Wenn Testergebnisse diskutiert werden sollen, dann bitte gerne solche mit erheblicher statistischer Relevanz, wie eben genau das von Stefan.
Welches wäre denn deiner Meinung nach 'relevanter' und damit diskussionswürdiger?

Benno
Parent - - By Benno Hartwig Date 2015-01-10 21:34
Wow, faszinierend.
Mal schauen, ob es bestätigende Tests von anderen geben wird.
Benno
Parent - - By Stefan Pohl Date 2015-01-11 11:58
Benno Hartwig schrieb:

Wow, faszinierend.
Mal schauen, ob es bestätigende Tests von anderen geben wird.
Benno


Wenn du dich in die LittleBlitzerGUI reingefummelt hast, könntest du doch noch mal dein Notebook anwerfen...
Wie erwähnt, gibt es auf meiner Website jetzt ein Hilfe-File für die LBG und Beispieldateien für Engines.lbe und Tournament.lbt.
Ein schönes Gauntlet von Gull oder Komodo gegen Stocki 141221 und 150105 würde mich nach wie vor sehr interessieren.

Stefan
Parent - By Benno Hartwig Date 2015-01-11 14:27
Werde ich heute Abend mal starten.
Im Moment mache ich gerade ein paar Testläufe, mit denen ich sehen will, wie schnell der einzelne Thread arbeitet, wenn gleichzeitig verschieden viele weitere Threads auf Hochtouren laufen.
Dazu will ich dann noch was posten.
Benno
Parent - - By Benno Hartwig Date 2015-01-12 07:05
Gestern Abend noch habe ich solch ein Gountlet gestartet: 30s+0,5s, ein Thread pro Engine, ponder=off, 64bit, modern-Versionen
Ich lasse auf dem i3 nur 2 Partien gleichzeitig laufen. (Bin mir aber nicht sicher, dass 4 wirklich schädlich wären).
Nach der ersten Nacht steht es:

1. Gull3          167.5/520  67-252-201  (L: m=161 t=0 i=0 a=91)  (D: r=127 i=32 f=16 s=1 a=25) (tpm=825.9 d=14.25 nps=991856)
2. SF64_14122208  173.0/260  125-39-96   (L: m=11 t=0 i=0 a=28)   (D: r=62 i=16 f=9 s=0 a=9)    (tpm=833.9 d=20.45 nps=962515)
3. SF64_15010523  179.5/260  127-28-105  (L: m=11 t=0 i=0 a=17)   (D: r=65 i=16 f=7 s=1 a=16)   (tpm=825.8 d=20.61 nps=971141)


Benno
Parent - By Stefan Pohl Date 2015-01-12 07:28
Kommt drauf an, was du unter schädlich verstehst. Auf jeden Fall würden die Engines nur noch halb so schnell laufen, was bei der kurzen Bedenkzeit und deinem rel. langsamen Prozessor m.E. nicht zu empfehlen wäre. Und einige timelosses wirds auch geben.
Ich rate daher davon weiterhin ab.

Stefan
Parent - - By Benno Hartwig Date 2015-01-13 00:14
Zwischenstand:
1. Gull3          466.5/1438 192-697-549 (L: m=455 t=0 i=0 a=242)(D: r=332 i=98 f=39 s=4 a=76)(tpm=821.6 d=14.23 nps=989599)
2. SF64_14122208  482.0/719  352-107-260 (L: m=29 t=0 i=0 a=78)  (D: r=156 i=52 f=18 s=1 a=33)(tpm=830.6 d=20.45 nps=954608)
3. SF64_15010523  489.5/719  345-85-289  (L: m=21 t=0 i=0 a=64)  (D: r=176 i=46 f=21 s=3 a=43)(tpm=823.7 d=20.63 nps=976720)

Die Januar-Version will nicht so recht eine wirklich besondere Klasse zeigen.
Benno
Parent - - By Stefan Pohl Date 2015-01-13 05:27
Naja, immerhin auch gut ein Prozent mehr Erfolgsscore, also ca. +7 Elo.
Man darf nicht vergessen, daß alles im Bereich von 10-15 Elo Nuancen im Ergebnis (1.5-2%) sind, die sich generell nur schwer messen lassen. Zumindest mit ein paar Tausend Partien. Sonst müßte man (wie im Framework) eben einige Zehntausend Partien machen. Nur steht das mit einer normalen Hardwareausstattung schlicht nicht zur Debatte. Bei einem 5000er Testrun sind 1% halt nur 50 Punkte. Das kann dann eben auch mal etwas schwanken. Das ist unvermeidbar.
Mal sehen, was der nächste Testrun bei mir bringen wird.

Stefan
Parent - - By Benno Hartwig Date 2015-01-13 09:22
Wenn man solch einen Test mal selber macht und hin und wieder auf die Entwicklung schaut, dann sieht man auch, wie es ständig leicht schwankt. Mal so 10 oder 15 rauf oder runter findet andauerd statt. und irgendwelche Verschiebungen aufgrund einer Glück- oder Pechsträhne irgendwann vorher, bekäme ich überhaupt nicht mit.
Und solche ganz üblichen Schwankungen bedeuteten bei jetzt gerade mal knapp 1000 Partien je Stockfish noch erhebliche ELO-Schwankungen.

Das zu sehen hilft dann, das Gefühl zu verinnerlichen und auch präsenter zu machen, in welchem Maße sehr unsicher auch eben eine Schätzung auf Basis von immerhin 1000 Partien ist. (Früher mal hätte mich diese Partienzahl halt beeindrucken können).


Benno
Parent - By Stefan Pohl Date 2015-01-13 13:05
Benno Hartwig schrieb:

Wenn man solch einen Test mal selber macht und hin und wieder auf die Entwicklung schaut, dann sieht man auch, wie es ständig leicht schwankt. Mal so 10 oder 15 rauf oder runter findet andauerd statt. und irgendwelche Verschiebungen aufgrund einer Glück- oder Pechsträhne irgendwann vorher, bekäme ich überhaupt nicht mit.
Und solche ganz üblichen Schwankungen bedeuteten bei jetzt gerade mal knapp 1000 Partien je Stockfish noch erhebliche ELO-Schwankungen.

Das zu sehen hilft dann, das Gefühl zu verinnerlichen und auch präsenter zu machen, in welchem Maße sehr unsicher auch eben eine Schätzung auf Basis von immerhin 1000 Partien ist. (Früher mal hätte mich diese Partienzahl halt beeindrucken können).


Benno


Sehr treffend formuliert. Unterschreibe ich hiermit ebenfalls.

Gruß - Stefan
Parent - - By Roland Riener Date 2015-01-13 15:49
Zitat:
Das zu sehen hilft dann, das Gefühl zu verinnerlichen und auch präsenter zu machen, in welchem Maße sehr unsicher auch eben eine Schätzung auf Basis von immerhin 1000 Partien ist. (Früher mal hätte mich diese Partienzahl halt beeindrucken können).


Der Umkehrschluß scheint aber auch berechtigt: Eine "Eindruckgewinnung" oder wie man es sonst nennen will über einige Dutzend Partien sagt auch schon was aus. Leider werden diese Postings hier gleich angefeindet, auch wenn der Begriff "Test" peinlichst vermieden wird.
Parent - By Benno Hartwig Date 2015-01-13 18:03 Edited 2015-01-13 18:16

> Eine "Eindruckgewinnung" oder wie man es sonst nennen will über einige Dutzend Partien sagt auch schon was aus


Sagt was aus, klar.
Nur ist diese Aussage dann mit immer noch mit recht großer Wahrscheinlichkeit einfach falsch.
Ein 27,0:23:0 wird dann gern als "A ist etwas stärker als B" gewertet, und damit liegt man aber für meinen Geschmack zu oft einfach daneben.
Auch wenn B etwas stärker als A ist, begegnet einem solch ein Ergebnis immer mal wieder!
Und alles was man dann hat ist eben diese 27:23 und man weiß nicht, wie es zustande kam.

Aber jeder darf die Tests so machen und auch so kurz machen, wie es ihm beliebt, und Reaktionen, die tatsächlich 'Anfeindungen' sind, passen nicht.
Aber wenn die aus den Kurztests generierten Aussagen zu vermeintlichen Tatsachen dann gar zu 'mutig' sind, dann kommt wohl irgendwo ein Kommentar her. Möge er freundlich-kritisch bleiben.

Benno

PS:
Konkretes Beispiel:
Wenn A 20 ELO stärker ist als B, dann wird bei 50 Partien immerhin ungefähr mit Wahrscheinlichkeit 25% (als bei jeder 4. derartigen Testreihe) trotzdem B als Sieger aus dem Duell hervorgehen.
Welcher Eindruck ist dann gerechtfertigt, wenn du ein knapperes Ergebnis hast (außer "sind wohl so gaaanz ungefähr gleich stark")

Noch ein Beispiel:
Wenn A und B eigentlich gleich stark sind, wirst du auch mit dieser Wahrscheinlichkeit 25%  erleben, dass irgendeine der beiden Engines siegt mit mindestens 28,0 - 22,0.
Was fängst du dann an mit einem solchen Ergebnis 28,0 - 22,0? Welcher 'Eindruck' ist dann gerechtfertigt?
Parent - - By Michael Scheidl Date 2015-01-13 18:54 Upvotes 1
Zitat:
Leider werden diese Postings hier gleich angefeindet, auch wenn der Begriff "Test" peinlichst vermieden wird.

Solche Anfeindungen halten sich hoffentlich in Grenzen, und man sollte sich keineswegs davon abschrecken lassen.

Ich erkenne eine interessante Engine nicht an 10.000 statistisch relevanten Partieresultaten, sondern unter Umständen schon an einem einzigen, genialen, brillanten Meisterzug. Dieser beweist mir vielleicht nicht ob diese Engine jemals Top 20 werden kann, aber er zeigt Potential und eine Schach-Entitiät die schönes schaffen kann.

Wer diese Betrachtungsweise über Bord wirft und nur noch auf Statistiken schaut, kann wohl kaum noch viel Freude an Computerschach haben. Vielleicht sind das begeisterte Buchhalter oder so, ich weiß es nicht und ich verstehe es auch nicht. So wie ich unser Hobby verstehe, regieren die schachlichen Inhalte und nicht die Zahlen. So sollte es zumindest sein. Computerschach ohne Schach wäre eine leblose, aus Zahlenfriedhöfen bestehende Sache die mich nicht interessiert.
Parent - By Benno Hartwig Date 2015-01-13 20:19

> sondern unter Umständen schon an einem einzigen, genialen, brillanten Meisterzug.


Du tappst dann aber immer noch im Dunkeln, mit welcher Heftigkeit und mit welcher Häufigkeit sie dümmere und ggf. dumme Züge macht.
Un auch, mit welcher Häufigkeit ihr derart geniale Züge gelingen.
Ggf. interessiert dich das nicht. OK.
Für die Einschätzung der Spielstärke kommt man aber wohl nicht darum herum.

Benno
Parent - By Peter Martan Date 2015-01-14 10:58
Michael Scheidl schrieb:

Zitat:
Leider werden diese Postings hier gleich angefeindet, auch wenn der Begriff "Test" peinlichst vermieden wird.

Solche Anfeindungen halten sich hoffentlich in Grenzen, und man sollte sich keineswegs davon abschrecken lassen.

Ich erkenne eine interessante Engine nicht an 10.000 statistisch relevanten Partieresultaten, sondern unter Umständen schon an einem einzigen, genialen, brillanten Meisterzug.


Jetzt pass aber nur auf, dass du nicht gleich heftig angefeindet wirst werden, auf der anderen Seite: du würdest dich davon ja keineswegs abschrecken lassen, und außerdem traut sich bei dir nicht so bald einer so was.

Ich schließe mich vollinhaltlich deinem posting an, mich feindet diesbezüglich ja auch keiner mehr an, weil ich mir in diesen Dingen längst absolute Narrenfreiheit verdient habe.
Parent - - By Benno Hartwig Date 2015-01-14 08:08 Edited 2015-01-14 08:29
So sieht es jetzt aus:

  Program              Score     %    Av.Op.  Elo    +   -    Draws
1 SF64_15010523 : 1019.5/1500  68.0    -63     68   14  14   39.3 %    (+725,= 589,- 186)
2 SF64_14122208 : 1003.5/1502  66.8    -63     58   14  14   37.1 %    (+725,= 557,- 220)
3 Gull3         :  979.0/3002  32.6     63    -63   10  10   38.2 %    (+406,=1146,-1450)


Ein Plus von 10 ELO wird hier also für die Januar-Version ausgewiesen.
Witzig, dass dies durch gleich viele Siege, deutlich mehr Remisen und deutlich weniger Niederlagen zustande kam.
Erwartet hätte ich eher: ein paar Siege mehr, ungefähr gleich viele Remisen, ein paar Niederlagen weniger.

Jetzt will ich das doch auch mal mit 4 Threads (Hyperthreading) laufen lassen, mal gucken, wie es dann aussieht. ("2 Threads? Man das dauert..." )

Benno

PS:
Stefan, has du bei der Januar-Version auch eine gut 2,3% höhere Knotenleistung festgestellt?
Parent - - By Stefan Pohl Date 2015-01-14 19:32 Edited 2015-01-14 19:37
Benno Hartwig schrieb:

So sieht es jetzt aus:

<code>  Program              Score     %    Av.Op.  Elo    +   -    Draws
1 SF64_15010523 : 1019.5/1500  68.0    -63     68   14  14   39.3 %    (+725,= 589,- 186)
2 SF64_14122208 : 1003.5/1502  66.8    -63     58   14  14   37.1 %    (+725,= 557,- 220)
3 Gull3         :  979.0/3002  32.6     63    -63   10  10   38.2 %    (+406,=1146,-1450)</code>


Ein Plus von 10 ELO wird hier also für die Januar-Version ausgewiesen.
Witzig, dass dies durch gleich viele Siege, deutlich mehr Remisen und deutlich weniger Niederlagen zustande kam.
Erwartet hätte ich eher: ein paar Siege mehr, ungefähr gleich viele Remisen, ein paar Niederlagen weniger.

Jetzt will ich das doch auch mal mit 4 Threads (Hyperthreading) laufen lassen, mal gucken, wie es dann aussieht. ("2 Threads? Man das dauert..." )

Benno

PS:
Stefan, has du bei der Januar-Version auch eine gut 2,3% höhere Knotenleistung festgestellt?


Bißchen flotter war die Version wohl. Aber alles im Normalbereich,wo Stockfish bei mir immer liegt (so zwischen 1.7 -1.8 MN/s auf singlecore). Daher hab ich nicht genau nachgerechnet.

Und sooo lange dauert es ja nun auch nicht. Ich lasse auf meinem Quadcore-Notebook sogar nur 3 Partien gleichzeitig laufen, damit Windoofs sich wohlfühlt und nicht reinstört. Und mit meinem Testtempo von 70"+700ms schaffe ich so ca. 1200 Partien in 24 Stunden. Ein 5000er Testrun dauert also gut 4 Tage. Ist doch kein Problem.

Stefan
Parent - - By Jens Israel Date 2015-01-14 22:08
Lese ich richtig?

"Ich lasse auf meinem Quadcore-Notebook sogar nur 3 Partien gleichzeitig laufen, damit Windoofs sich wohlfühlt und nicht reinstört. Und mit meinem Testtempo von 70"+700ms schaffe ich so ca. 1200 Partien in 24 Stunden. Ein 5000er Testrun dauert also gut 4 Tage. Ist doch kein Problem"

Du hast eines Quadcore-Prozessor mit VIER echten Kernen und lässt drei Partien gleichzeitig laufen? An jeder Partie sind zwei Programme beteiligt, die jeweils eines Kern benötigen. Das bedeutet, bei drei Partien gleichzeitig müssen zwei Programme auf die "Kerne" ausweichen, die durch Hyper-Threading "nachgebildet" werden und die nur eine Bruchteil der Leistung der echten Kerne haben. Das fällt nur deswegen nicht so auf, weil der Task-Scheduler von Windows immer bestrebt ist aktive Threads auf die richtigen Kerne zu legen und er darin ziemlich gut ist. Daher werden alle sechs Programme andauernd zwischen den vier Kernen hin und her geschoben. Wenn dann aus irgendwelchen Gründen ein Programm öfters (oder seltener) von einem echten Kern herunter geworfen wird, hast Du sofort verfälschte Messergebnisse ohne jede Chance, das später sauber zu reproduzieren.

Vielleicht war der Stockfisch vom 15.11. ja während seines Testlaufs auch nur besonders gut im "Kerne klammern"...

Stell Dir mal vor, Microsoft ändert bei einem Patchday (wie gerade heute) beim Abstellen einer Sicherheitslücke irgendwas am Task-Scheduler. Offiziell tun sie es ja nicht, aber willst Du Dich darauf verlassen?

Gruß Jens
Parent - By Benno Hartwig Date 2015-01-15 08:17 Edited 2015-01-15 08:19

> Das bedeutet, bei drei Partien gleichzeitig müssen zwei Programme auf die "Kerne" ausweichen, die durch Hyper-Threading "nachgebildet" werden und die nur eine Bruchteil der Leistung der echten Kerne haben


Ich denke, diie Programme haben nicht "echte" und "nachgebildete" Kerne zur Verfügung.
Auf einem System mit Hyperthreading siehst du stets nur "Hyperthreadingkerne" (Wie heißen die eigentlich wirklich?). Jeder reale Kern trägt dann eben 2 derartige Hyperthreading-Kerne.
Wenn nur einer dieser beiden Hyperthreading-Kerne zu tun hat, dann geschieht das mit sehr hohem Tempe.
Wenn beide zu tun haben, dann sind sie nur so ganz ungefähr 60% so schnell (Im Prinzip halb so schnell, aber dank der größeren Effektivität beim Hyperthreading eben doch wenigstens etwas schneller)

Aber wie die Zuordnung der 6 Stockfish-Prozesse dann erfolgt, weiß ich tatsächlich nicht.
Kann es dann sein, dass zwei gerade rechnende Stockfische dieser 6 Stockfische auf einem(!) realen Kern zu liegen kommen?
Oder ist Windows oder der Prozessor (oder wer auch immer) so schlau und fähig, stets 3 verschiedene reale Kerne zu nutzen, wenn nur 3 Kerne Last erzeugen (ggf. eben einen laufenden Stockfish auf einen Hyperthreading-Kern eines anderen realen Kerns zu verlagern) Das wäre dann ja eigentlich nötig. Geschieht es?

Benno
Parent - By Stefan Pohl Date 2015-01-15 09:16 Edited 2015-01-15 09:21
Jens Israel schrieb:

Lese ich richtig?

"Ich lasse auf meinem Quadcore-Notebook sogar nur 3 Partien gleichzeitig laufen, damit Windoofs sich wohlfühlt und nicht reinstört. Und mit meinem Testtempo von 70"+700ms schaffe ich so ca. 1200 Partien in 24 Stunden. Ein 5000er Testrun dauert also gut 4 Tage. Ist doch kein Problem"

Du hast eines Quadcore-Prozessor mit VIER echten Kernen und lässt drei Partien gleichzeitig laufen? An jeder Partie sind zwei Programme beteiligt, die jeweils eines Kern benötigen. Das bedeutet, bei drei Partien gleichzeitig müssen zwei Programme auf die "Kerne" ausweichen, die durch Hyper-Threading "nachgebildet" werden und die nur eine Bruchteil der Leistung der echten Kerne haben. Das fällt nur deswegen nicht so auf, weil der Task-Scheduler von Windows immer bestrebt ist aktive Threads auf die richtigen Kerne zu legen und er darin ziemlich gut ist. Daher werden alle sechs Programme andauernd zwischen den vier Kernen hin und her geschoben. Wenn dann aus irgendwelchen Gründen ein Programm öfters (oder seltener) von einem echten Kern herunter geworfen wird, hast Du sofort verfälschte Messergebnisse ohne jede Chance, das später sauber zu reproduzieren.

Vielleicht war der Stockfisch vom 15.11. ja während seines Testlaufs auch nur besonders gut im "Kerne klammern"...

Stell Dir mal vor, Microsoft ändert bei einem Patchday (wie gerade heute) beim Abstellen einer Sicherheitslücke irgendwas am Task-Scheduler. Offiziell tun sie es ja nicht, aber willst Du Dich darauf verlassen?

Gruß Jens


Die LittleBlitzrGUI kann nicht pondern und zusätzlich haben alle Engines noch das ponder=false Kommando bekommen. Es laufen also immer nur 3 Engines gleichzeitig, wenn drei Partien laufen. Es sind allerdings 6 gleichzeitig im Speicher, was man bei der Hashgröße berücksichtigen muß. Aber 3 sind eben nur am Zug und nur diese rechnen. Die anderen 3 sind von der LBG stillgelegt und warten auf den Zug des Gegners.

Deshalb ist meine CPU nur zu 75% ausgelastet, was auch die CPU-Temperatur bestätigt die weit unter dem liegt, was bei maximaler Auslastung erreicht wird.

Stefan
Parent - - By Benno Hartwig Date 2015-01-15 12:45 Edited 2015-01-15 13:26
Nun sind auch bei "4 Partien gleichzeitig" 3000 Partien gespielt. Heraus kam:

1. Gull3           992.0/3000  489-1505-1006 (L: m=990 t=0 i=0 a=515)(D: r=601 i=178 f=86 s=8 a=133)(tpm=843.2 d=13.16 nps=613050)
2. SF64_14122208   994.0/1500  744-256-500   (L: m=89 t=1 i=0 a=166) (D: r=310 i=86 f=36 s=4 a=64)  (tpm=853.0 d=18.67 nps=569001)
3. SF64_15010523  1014.0/1500  761-233-506   (L: m=82 t=3 i=0 a=148) (D: r=291 i=92 f=50 s=4 a=69)  (tpm=849.5 d=19.02 nps=578890)


ELOstat sagt dazu:

  Program             Score     %    Av.Op.  Elo    +   -    Draws
1 SF64_15010523 : 1014.0/1500  67.6   -61     66   15  15   33.7 %
2 SF64_14122208 : 994.0/1500   66.3   -61     56   15  15   33.3 %
3 Gull3         : 992.0/3000   33.1    61    -61   10  10   33.5 %


Die SF-Januar-Version hätte demnach 10 ELO mehr als die vom Dezember.
Der Vorsprung entstand jetzt sowohl aus häufigeren Siegen und aus weniger Niederlagen, bei ähnlich vielen Remisen.
Und die Knotenleistung der Januar-Version war um nur 1,7% größer.
Timelosses hat es wirklich gegeben, 4 Stück bei 3000 Partien. "Immerhin" oder "nur". Je nach Sichtweise.
Interessanterweise habe ich bei diesen Bedingungen bei Gull keinen einzigen Verlust auf Zeit gesehen.

Benno

PS:
Die Engines waren bei 4 gleichzeitigen Partien erwartungsgemäß deutlich langsamer als bei 2 gleichzeitigen Partien:

Engine         nps(2 Partien)   nps(4 Partien)  Faktor
Gull3             989599            613050      61,9 %
SF64_14122208     954608            569001      59,6 %
SF64_15010523     976720            578890      59,3 %


Wie schnell ist solch ein Thread eines doppelt genutzten Kerns also im Vergleich zum Thread auf einem einfach genutzten Kern: 60,7%
(2*61,9 + 59,6 + 59,3)/4 = 60,7
(zumindest gemäß dieses Tests, auf meinem i3 2377M)
Parent - - By Stefan Pohl Date 2015-01-15 13:01
Benno Hartwig schrieb:

Nun sind auch bei "4 Partien gleichzeitig" 3000 Partien gespielt. Heraus kam:

<code>1. Gull3           992.0/3000  489-1505-1006 (L: m=990 t=0 i=0 a=515)(D: r=601 i=178 f=86 s=8 a=133)(tpm=843.2 d=13.16 nps=613050)
2. SF64_14122208   994.0/1500  744-256-500   (L: m=89 t=1 i=0 a=166) (D: r=310 i=86 f=36 s=4 a=64)  (tpm=853.0 d=18.67 nps=569001)
3. SF64_15010523  1014.0/1500  761-233-506   (L: m=82 t=3 i=0 a=148) (D: r=291 i=92 f=50 s=4 a=69)  (tpm=849.5 d=19.02 nps=578890)</code>

ELOstat sagt dazu:

<code>  Program             Score     %    Av.Op.  Elo    +   -    Draws
1 SF64_15010523 : 1014.0/1500  67.6   -61     66   15  15   33.7 %
2 SF64_14122208 : 994.0/1500   66.3   -61     56   15  15   33.3 %
3 Gull3         : 992.0/3000   33.1    61    -61   10  10   33.5 %</code>

Die SF-Januar-Version hätte demnach 10 ELO mehr als die vom Dezember.
Der Vorsprung entstand jetzt sowohl aus häufigeren Siegen und aus weniger Niederlagen, bei ähnlich vielen Remisen.
Und die Knotenleistung der Januar-Version war um nur 1,7% größer.
Timelosses hat es wirklich gegeben, 4 Stück bei 3000 Partien. "Immerhin" oder "nur". Je nach Sichtweise.
Interessanterweise habe ich bei diesen Bedingungen bei Gull keinen einzigen Verlust auf Zeit gesehen.

Benno


Manche Engines sind bei timelosses stärker anfällig (Houdini 4 z.B.) als andere. Bei Komodo 8 kann man ja sogar einen Parameter verstellen, damit sich die Engine etwas Zeitpolster aufhebt und damit sozusagen einstellen, wie timeloss-anfällig sie ist. Gull ist von Hause aus eher robust.
Ich würde dennoch immer nur maximal soviele Partien laufen lassen, wie Cores vorhanden sind.

Was du noch probieren kannst: Du kannst im Taskmanager, nachdem du die LBG gestartet hast (aber noch nicht das Spiel mit dem Go-Button) bestimmten Prozessen einen oder mehrere Cores fix zuweisen. Du solltest im Taskmanager bei dir 4 Cores vorfinden, nämlich 0-3. Wobei Core 1 und 3 virtuelle Hyperthreading-Cores sind. Fixiere dort mal den LBG-process auf Core 0 und 2. Das schaltet das Hyperthreading de facto aus (übers BIOS geht es bei den meisten Notebooks nicht). Vielleicht gibts dann keine timelosses. Wenn es schon unbedingt4 Partien auf 2 Cores sein sollen. Aber ob das hilft, weiß ich nicht.
Andere Möglichkeit: Eine Kopie der LBG.exe zusätzlich starten, so daß 2 LBGs gleichzeitig laufen, und in jeder der beiden jeweils 2 Partien starten. Und ggf. jeder der LBG einen Core (0 bzw. 2) im Takmanager zuweisen.

Viel Spaß beim Rumprobieren. Seriöse Testarbeit würde ich so aber nicht machen. Da sollte es wei gesagt maximal eine Partie pro realem Core sein. Aber für ein paar über-Nacht-Tests just-for-fun kann man da sicer mal was anderes probieren. Die LBG ist für sowas prädestiniert, da extrem robust und "gutmütig".
Den Engine-procesesses, die die LBG startet, nachdem man Go gedrückt hat, kann man übrigens keine Cores zuweisen. Genauer: Man kann schon, aber die processe werden nach Partieende terminiert und neu processes gestartet, sodaß die Reservierung im Taskmanager dadurch wieder entschwindet...Also ist das de facto nicht möglich, bzw. nur für eine einzige Partie

Stefan
Parent - - By Benno Hartwig Date 2015-01-15 13:21

> Viel Spaß beim Rumprobieren. Seriöse Testarbeit würde ich so aber nicht machen.


Du hast da sicher einen anderen Anspruch als ich: Du willst Listen erarbeiten, die recht robust gegen Kritik sind und schon einen bleibenden Wert haben sollen, zumindest für eine gewisse Zeit.
Und ich verstehe gut, dass du diese Unsicherheit darum ganz prinzipiell vermeiden willst.

Ich überlege eher: wie kann ich ganz praktisch einen (ersten?) Test so machen, dass er einigermaßen schnell schon eine gute statistische Qualität liefert. Und da will ich natürlich gern die Rechenleistung meines Rechners voll ausnutzen.

Aber dein Hinweis auf die (annähernd) halbe Knotenleistung bei 4 Threads ist natürlich richtig, und man darf dann schon fragen "Und wenn ich nur 2 Threads nehme, die Zeiten aber halbiere?"
Solch einen Test habe ich nun auch noch mal gestartet. Gleiche Engines, nur 2 Partien gleichzeitig, aber "obzön" kurze Zeiten: 15s+0,25s (statt eben eh schon sehr kurzen 30s+0,5s)
Ich will nun einfach noch mal sehen, was dann dabei heraus kommt.

Benno
Parent - By Stefan Pohl Date 2015-01-15 13:27
Benno Hartwig schrieb:

Aber dein Hinweis auf die (annähernd) halbe Knotenleistung bei 4 Threads ist natürlich richtig, und man darf dann schon fragen "Und wenn ich nur 2 Threads nehme, die Zeiten aber halbiere?"
Solch einen Test habe ich nun auch noch mal gestartet. Gleiche Engines, nur 2 Partien gleichzeitig, aber "obzön" kurze Zeiten: 15s+0,25s (statt eben eh schon sehr kurzen 30s+0,5s)
Ich will nun einfach noch mal sehen, was dann dabei heraus kommt.

Benno


Das ist generell auf jeden Fall der bessere Weg. Allerdings sind 250ms Inkrement schon grenzwertig. Houdini könnte da auf deinem rel. langsamen System schon einige timelosses produzieren. Ich habe die Erfahrung gemacht, daß ab 300ms Inkrement das Ganze eigentlich mit allen Top-Engines timelossfrei über die Bühne geht (natürlich nur bei 1 Partie pro einem realen Core). Allerdings sollte man dann schon auch wenigstens 20-25 Sekunden Basiszeit spendieren, damit der Zeiteinteilungsalgortihmus der Engines auch zu Tragen kommen kann.

Stefan
Parent - By Benno Hartwig Date 2015-01-16 15:54
Bei diesen 15s+0,25s bei 2 gleichzeitigen Partien kam jetzt heraus:

    Program            Score     %    Av.Op.  Elo    +   -    Draws
1 SF64_14122208 : 1020.5/1504  67.9    -65     65   15  15   32.6 %
2 SF64_15010523 : 1017.5/1501  67.8    -65     65   15  15   33.5 %
3 Gull3         :  967.0/3005  32.2     65    -65   10  11   33.1 %


Diesmal lagen die beiden Stockfishversionen in etwa gleichauf.
Time-losses hat es übrigens nicht gegeben.

Da bei 1500 Partien je Stockfish ein Blick auf kleinere ELO-Differenzen immer noch wenig sinnvoll ist, fasse ich die drei Versuchsreihen wenigstens mal zusammen:
  Program         Punkte  Partien  Quote
1 SF64_15010523 : 3051,0   4501   67,8 %
2 SF64_14122208 : 3018,0   4506   67,0 %
3 Gull3         : 2935,0   9007   32,6 %


Also ein kleiner Vorsprung (wieviel ELO?) der Januar-Version wäre das.

Benno
Up Topic Hauptforen / CSS-Forum / SPCC: Testrun von Stockfish 150105 durch

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill