Getunte Geräte virtuell in ChessEmu fair testen
Nachdem ich ja nun stolzer Besitzer eines auf 100 Mhz getunten Mephisto Milanos bin, dank des tollen FPGA-Chips, habe ich ja einige (20) Testpartien manuell gegen meinen Genius 68030 und meinen Magellan ausgespielt. Leider kann man manuell natürlich kaum eine nennenswerte Zahl von Partien spielen, um ein halbwegs brauchbares Elo-Ranking des Milano Super Turbos zu erhalten. Also habe ich nun die ChessEmu von F.Huber hinzugezogen. Damit ist ein solcher Test auch automatisiert möglich. Allerdings ist es etwas kompliziert, daher möchte ich es hier mal erläutern. Denn mit der hier skizzierten Methodik ist es natürlich auch möglich, getunte Versionen anderer Brettcomputer (auch getunte Versionen, die eigentlich nicht existieren, die man aber gerne mal testen würde) zu testen. Wer also schon immer wissen wollte, wie stark z.B. ein Super Conny mit 100 Mhz spielen würde (im Super Conny ist der Einbau des FPGA-Chips sogar wirklich machbar!) oder ein Mephisto Glasgow mit 100 Mhz oder 200 MHz, kann das auch machen, wenn er sich an meine Anleitung hält.
Wie geht es also? Erläutern werde ich es anhand des konkreten Beispiels, das mich interessiert, also den Milano Super Turbo im 30 Sekunden pro Zug Aktivschach gegen einige andere Brettcomputer zu testen.
Zunächst ist klar, die Gegner Brettcomputer spielen mit den normalen 30 Sekunden pro Zug (oder einer ähnlichen Stufe, das hängt vom Gerät ab (dazu die Anleitung des Gerätes konsultieren)). In Arena steht für automatisierte Partien nun der emulierte Milano nur in der 5MHz Version zur Verfügung (in der ChessEmu gibt es auch die 10MHz-Version, aber das nützt natürlich nichts). Damit dieser 5MHz Milano nun 20 mal (von 5MHz auf 100MHz = Faktor 20) mehr Stellungen pro gespieltem Zug durchrechnet, muß er also 20 mal mehr Zeit bekommen. 20x30 Sekunden= 600 Sekunden = 10 Minuten. Man stellt also in Arena unter der Engine-Konfiguration des Milano (nicht in Arena selbst!!!) nun 9 Minuten 59 Sekunden ein (10 Minuten geht nicht, die Minutenzahl der Normalstufe des Milano ist maximal einstellig). Nun hat man natürlich 2 Probleme: Mit 10 Minuten pro Zug würde eine Partie schier ewig dauern und die Bedenkzeit des Permanent Brain wäre total verzerrt und würde den Milano stark benachteiligen. Denn der Gegner könnte immer 10 Minuten lang pondern, der Milano nur 30 Skunden lang. Diese beiden Probleme lassen sich nun durch die Möglichkeit der ChessEmu lösen, die Geräte unterschiedlich schnell zu emulieren. Ich erkläre das hier nun Step-by-Step:
1) Der Milano muß so stark wie nur möglich beschleunigt werden. Leider mußte ich feststellen, daß es erhebliche Unterschiede in der maximalen Geschwindigkeit gibt, wenn der Milano in der ChessEmu läuft und wenn er in Arena läuft . Man muß also den Milano in Arena einladen. Dort in der Engine-Konfiguration (In Arena unter "Engines" -> "Engines1" -> "Configure") gibt man nun bei Speed den Wert 5000 ein (5000% Geschwindigkeit, dieser Wert wird aber nicht annähernd erreicht!) und schaut nun, wieviel schneller die Uhr des Milano wirklich geht. Dazu muß er aber rechnen, anderfalls geht die Uhr noch schneller! Bei mir waren es auf einem alten Notebook gut 6.6 mal schneller als normal. Man stoppt einfach mit einer Stoppuhr, wie lange der Milano beim Rechnen für eine oder besser drei Minuten Realzeit auf seiner internen Uhr braucht. Und errechnet so, wie hoch die maximale Geschwindigkeit ist. Mit dieser maximalen Geschwindigkeit wird der Milano dann auch in den Testpartien in Arena spielen. In der Engine-Konfiguration des Milano in Arena stellt man nun auch gleich die 9 Minuten und 59 Sekunden Bedenkzeit ein.
2) Nun errechnet man, wie lange der Milano in Realzeit braucht, um seine 10 Minuten pro Zug zu rechnen (s.o.). Bei mir sind das ziemlich genau: 600 (Sekunden) / 6.6 = 90 Sekunden.
3) Diesen realen Bedenkzeitverbrauch muß man nun auch für die Gegner Brettcomputer erreichen, denn damit ist dann auch die Ponder-Zeit fair (weil gleich) für Gegner und Milano. In meinem Beispiel ist es nun so, daß die Gegner 30 Sekunden pro Zug spielen (und dafür bei normaler 100% Emulations-Geschwindigkeit natürlich auch 30 Sekunden Realzeit benötigen). Sie sollen aber 90 Sekunden brauchen, ohne dabei mehr Stellungen zu berechnen. Also wird die Emulationsgeschwindigkeit der Gegner auf 33% reduziert. Damit gehen die internen Uhren dreimal langsamer und die Realbedenkzeit steigt damit auf 30x3 = 90 Sekunden. Die in der Arena Engine-Konfiguration für die Gegner Brettcomputer eingestellte Bedenkzeit bleibt natürlich bei 30 Sekunden pro Zug!
Und so wird es gemacht. Damit startet man nun die Testpartien in Arena. Die Bedingungen sind nun fair. Allerdings dauern die Partien dennoch immer noch recht lange: 90 Sekunden pro Zug bedeutet ja: 3 Minuten für einen vollen Zug (Weiß und Schwarz). Dauert eine Partie also im Schnitt 80 Züge, so dauert sie immerhin 4 Stunden (!). Mehr als 6 Partien pro Tag schafft man so also nicht. Aber immerhin läuft das Ganze automatisiert und rund um die Uhr. Mit etwas Geduld kommen so einige Partien zusammen! Und wer einen schnelleren PC-Prozessor nutzt, kann den Milano auch noch schneller laufen lassen. Damit sinkt der Realzeit-Bedarf des Milano (um seine 10 Minuten pro Zug zu rechnen) und somit muß man dann auch die Gegner weniger stark abbremsen (die Realzeit pro Zug muß ja bei Milano und Gegner immer identisch sein!) und damit gehen die Partien auch insgesamt deutlich schneller. Sehr viel schneller als 45-60 Sekunden Realzeit pro Zug wird es aber kaum werden. Ca. 10 Partien pro Tag dürften kaum zu toppen sein, dafür benötigt man dann aber schon eine PC-CPU mit wirklich hoher Taktrate. Aber immerhin!
Wichtig: In Arena muß man eine sehr lange Zeitkontrolle einstellen, damit kein Brettcomputer auf Zeit verliert. Ich habe z.B. 40 Züge in 3 Stunden eingestellt. Das ist überreichlich, da in Arena ja nur die verbrauchte Realzeit (90 Sekunden pro Zug) von Belang ist. Die eigentliche Zeitkontrolle liegt ja sowieso bei den emulierten Brettcomputern, was man diesbzgl. genau in Arena einstellt ist also unerheblich, es geht nur darum, Verluste durch Zeitüberschreitungen zu verhindern!
Ich habe jetzt mal ein Test-Gauntlet des virtuellen Milano Super Turbo 100MHz gegen 3 starke Brettcomputer in Arena gestartet (Genius 68030, Fidelity Elite V10 und den Mephisto Montreux). Je 50 Partien = 150 Partien. Da ich aber nur ca. 6 Partien pro Tag schaffe, wird das immerhin 25 Tage dauern. Aber ich hab es ja nicht so eilig. Hoffentlich läuft Arena und die ChessEmu stabil. Werde berichten. Wenn alles klappt, teste ich den Milano Super Turbo evt. Noch gegen ein paar andere starke Geräte. Mal schauen.
Geändert von StPohl (22.09.2020 um 08:37 Uhr)
|