Hallo zusammen,
Bekanntermassen führe ich ja 2 parallele Ranglisten, nämlich die TEB-Rangliste (60''+750ms Bedenkzeit) und die LightSpeed-Rangliste (20''+250ms). Dies war eigentlich dazu gedacht, um u.a. festzustellen, ob eine Engine mit mehr/weniger Bedenkzeit abbaut oder zulegt. Allerdings mußte ich festellen, daß die Ergebnisse in beiden Listen sehr ähnlich sind und alle Abweichungen der einzelnen Engines zwischen kurzer und längerer Bedenkzeit innerhalb der Errorbar liegen. Daher überlege ich nun, nur noch mit der ganz kurzen Bedenkzeit zu testen und dafür lieber mehr Partien zu spielen, sodaß ich auch aussagekräftige Einzelvergleiche zwischen 2 Engine erhalte - bisher sind es pro Einzelbegegnung immer 150 Vorgabestellungen=300 Partien. Ich dachte daher, es wäre sinnvoller lieber 500 Vorgabestellungen=1000 Partien zu absolvieren.
Zudem habe ich inzwischen festgestellt, daß ich es mit dem Windoofs-Taskmanager schaffe, die Hyperthreading-Kerne abzuschalten (was bei meinem Laptop leider im BIOS nicht geht) - zumindest für die extrem einfach gehaltene Anwendung LittleBlitzerGUI (bei der FritzGUI geht es nicht, diese ist zu komplex). Damit gewinne ich ca. knapp 20% mehr Leistung (Houdini rechnet nun 2.1 Mio Knoten/s im singlecore-Betrieb statt knapp 1.9 wie bisher), und kann daher die Bedenkzeit ohne Qualitätsverlust nochmals um 20% reduzieren, würde dann also mit 15''+200ms spielen. Zur Zeit läuft ein erster Test, um zu sehen, ob alle Engines mit dieser kurzen Bedenkzeit in der LittleBlitzerGUI klarkommen und keine timelosses produzieren. Bisher (nach 100 Partien) sieht es gut aus. Auch Houdini 2.0c, der der Wackelkandidat für ganz kurze Zeiten ist, scheint klarzukommen (eigentlich wird es auch erst ab 150ms kritisch und ohne Hyperthreading sollte auch die Reaktionszeit der Engines nochmal minimal schneller werden).
Bei 15''+250ms ist die durchschnittliche Rechenzeit der Engines (gemittelt über die ganze Partie, ergo im Mittelspiel mehr und im Endspiel weniger) ca. 0.33 Sekunden pro Zug und eine Engine verbraucht pro Partie ca. 32 Sekunden Gesamtbedenkzeit. Eine Partie dauert ca. 64 Sekunden, da 4 Partien auf meinem Quadcore-Laptop parallel laufen, braucht eine Partie dann noch ca. 16 Sekunden, d.h. ich schaffe ca. 225 Partien pro Stunde bzw. ca. 5400 Partien pro 24 Stunden. Ein Gauntlet einer neuen Engine/Version/Setting würde also z.Zt. knapp 2 Tage dauern - wenn ich die Rangliste mit den aktuellen Engines erst mal aufgebaut habe (das dauert natürlich beträchtlich länger, zudem ich ja das dafür eigentlich nötige RoundRobin-Turnier in einzelne Gauntlets aufspalten muß, da die LittleBlitzerGUI nur im Gauntlet-Modus alle Vorgabestellungen sequentiell - und mit vertauschten Farben wiederholt - abspielt).
Houdini 2.0c rechnet unter diesen Bedingungen übrigens im Schnitt pro Zug ca. 14 Halbzüge tief, Stockfish ca. 18 Halbzüge und Rybka 13 Halbzüge. Also m.E. völlig ausreichend für vernünftiges Schach. Ich habe auch schon 500 Vorgabestellungen per Hand aus der Frank Q.-Datenbank herausgefiltert und anschließend schön durcheinandergemischt, damit ich auch schon vor Ablauf eines kompletten Tests gute Zwischenresultate bekomme, denn ich werde ja bei Setting-Tests sicher auch mal vorzeitig abbrechen und nicht 10000 Partien voll durchziehen, wenn nach 2000 Partien absehbar ist, daß das Setting ein Griff ins Klo war...
Ich halte das eigentlich für eine ganz gute Idee. Was meint ihr dazu?
Gruß - Stefan
P.S: Wer ebenfalls die LittleBlitzuerGUI auf einem Laptop laufen läßt und das Hyperthreading im BIOS nicht abschalten kann, muß folgendes tun: Die LittleBlitzerGUI starten (aber noch nicht losrechnen lassen!!!), dann den Windows-Taskmanager starten und den Prozess LittleBlitzer.exe suchen und dort per rechtem Mausklick "Zugehörigkeit festlegen" aufrufen. Dort nun alle Häkchen von allen CPUS entfernen und dann die Häkchen manuell bei den CPUs 0,2,4,6 wieder setzen (das sind die Hardware-Kerne, zumindest bei meinem ACER-Laptop). Anschließend die LittleBlitzerGUI losrechnen lassen. Das wars schon. Im Taskmanager unter "Leistung" sieht man dann 4 Kerne bei praktisch durchgängig 100% und 4 praktisch tote Kerne nahe 0% (mit Hyperthreading liegen alle 8 Kerne immer so bei 80%). Dazu sollte die angezeigte CPU-Auslastung (gesamt) bei ca. 49% (weil ja die 4 virtuellen Kernen nicht genutzt werden) liegen.
Ob man alles richtig gemacht hat, sieht man, wenn die Knotenleistung der Engines, die ja in der LittleBlitzerGUI immer angezeigt wird) um knapp 20% ansteigt.