Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Zeiteinteilung bei Enginematches
- - By Werner Kiefert Date 2010-07-02 10:08
Hallo, erstmals habe ich Enginematches durchgeführt, und zwar mit Deep Fritz 12, Deep Rybka 4 und Stockfish 1.7.1 JA 64bit. Die Matches wurden ohne Eröffnungsbuch gespielt mit einer Bedenkzeit von 10m + 3s und auf Gegnerzeit rechnen. Die Zeiteinteilung der Engines finde ich prinzipiell wenig verständlich. In allen Fällen wird in der Eröffnung unheimlich viel Zeit verbraucht, insbesondere Fritz ist in dieser Phase sehr langsam. Ganz merkwürdig fand ich das Verhalten von Fritz in einem 8 Partien Match gegen Stockfish. In meist schon schlechter bewerteter Stellung überschritt Fritz regelmäßig die Zeit noch vor dem 20. Zug. Wie kann das sein, kann eine Engine überhaupt die Zeit überschreiten?
Als Beispiel gebe ich die ersten 3 Züge einer Partie Fritz - Stockfish an. In Klammern steht die Zeit für den jeweiligen Zug. 1) d4 (43s) Sf6 (16s) 2) Sf3 (1:53m) e6 (27s) 3) Sc3 (4:31m !) d5 (21s). Soviel Zeit für eine nicht unbedingt weltmeisterschaftliche Eröffnung.
In Partien gegen Rybka hat Fritz 3 mal remisiert und 3 mal verloren. Und das, obwohl Fritz durchweg eine größere Rechentiefe erreicht. Stockfish wiederum hat Rybka dominiert, rechnet noch schneller als Fritz und scheint in der Bewertung etwa 2 Züge früher als die anderen Engines die Stellung richtig einzuschätzen.
Das sind erste, keineswegs repräsentative Erfahrungen. Übrigens, kann man unter der Fritz 11 Oberfläche auch Enginematches austragen?
Für eine Erklärung hinsichtlich der Zeiteinteilung bin ich dankbar. Vielleicht mache ich ja auch etwas falsch.
Viele Grüße von Werner aus Siegen
Parent - By Günther Höhne Date 2010-07-02 13:57 Edited 2010-07-02 13:59
Hallo,

beim Zeitmanagement haben die Programmierer ganz unterschiedliche Sichtweisen. Es mach durchaus Sinn, einer Engine in der Eröffnungsphase mehr Zeit einzuräumen,
denn es gibt ja auch deutlich mehr Stellungen zu berechnen.
Bei Partien mit längeren Bedenkzeiten kann das ein großer Vorteil sein. Bei Blitzpartien kann es aber vorkommen, dass hinten raus die Zeit fehlt und die Engine ungenau wird.

Gruß
Günther
Parent - By Peter Martan Date 2010-07-02 14:25 Edited 2010-07-02 14:27
Die Bedenkzeiten, die sich deine engines in deinem Beispiel  für 10+3 nehmen, stimmen mich allerdings auch bedenklich.
Kann es sein, dass du ihnen zuviel hash zuteilst und swapping einsetzt? Das würde eine Möglichkeit für mich sein, dass sie so häufig auf Zeit verlieren. Dass du vielleicht auch nicht beiden Gegnern alle Kerne der cpu, die insgesamt zur Verfügung stehen, bei ponder on gönnen solltest, weil sonst die Rechnerleistung auf die eine und die andere engine mehr oder weniger zufällig verteilt wird, war dir ja wohl ohnehin auch schon klar, oder?
In Fritz 11 GUI kommst du mit STRG-e ins Menü der engine matches.
Parent - - By Wolfgang Battig Date 2010-07-02 14:37
[quote="Werner Kiefert"]
Hallo, erstmals habe ich Enginematches durchgeführt, und zwar mit Deep Fritz 12, Deep Rybka 4 und Stockfish 1.7.1 JA 64bit. Die Matches wurden ohne Eröffnungsbuch gespielt mit einer Bedenkzeit von 10m + 3s und auf Gegnerzeit rechnen. Die Zeiteinteilung der Engines finde ich prinzipiell wenig verständlich. In allen Fällen wird in der Eröffnung unheimlich viel Zeit verbraucht, insbesondere Fritz ist in dieser Phase sehr langsam. Ganz merkwürdig fand ich das Verhalten von Fritz in einem 8 Partien Match gegen Stockfish. In meist schon schlechter bewerteter Stellung überschritt Fritz regelmäßig die Zeit noch vor dem 20. Zug. Wie kann das sein, kann eine Engine überhaupt die Zeit überschreiten?
Als Beispiel gebe ich die ersten 3 Züge einer Partie Fritz - Stockfish an. In Klammern steht die Zeit für den jeweiligen Zug. 1) d4 (43s) Sf6 (16s) 2) Sf3 (1:53m) e6 (27s) 3) Sc3 (4:31m !) d5 (21s). Soviel Zeit für eine nicht unbedingt weltmeisterschaftliche Eröffnung.
In Partien gegen Rybka hat Fritz 3 mal remisiert und 3 mal verloren. Und das, obwohl Fritz durchweg eine größere Rechentiefe erreicht. Stockfish wiederum hat Rybka dominiert, rechnet noch schneller als Fritz und scheint in der Bewertung etwa 2 Züge früher als die anderen Engines die Stellung richtig einzuschätzen.
Das sind erste, keineswegs repräsentative Erfahrungen. Übrigens, kann man unter der Fritz 11 Oberfläche auch Enginematches austragen?
Für eine Erklärung hinsichtlich der Zeiteinteilung bin ich dankbar. Vielleicht mache ich ja auch etwas falsch.
Viele Grüße von Werner aus Siegen
[/quote]

kannst Du mal ein paar Daten zu Deiner HArdware schreiben?

Wieviele CPU / Kerne hat der PC?
Wieviel RAM insgesamt?
Wieviel Hash hast Du zugeteilt? (siehe Antwort von Peter Martan)

Sonst wird es schwierig Dir zu helfen. Jedenfalls ist das was da bei Dir passiert definitiv nicht "normal"...

Gruß
Wolfgang
Parent - By Michael Waesch Date 2010-07-02 14:49
Wenn mich nicht alles täuscht, schrieb er in einem anderen Thread etwas von: I7, 4 Kerne, 8GB RAM und Win 7 64 bit.

Mike
Parent - - By Michael Scheidl Date 2010-07-02 17:54
Ich glaube auch daß hier technisch etwas schiefging, und/oder ungünstig konfiguriert wurde. Die Zeitbeispiele sehen so aus, also ob ohne Eröffnungsbuch gespielt wird?! Mit Buch bzw. Büchern oder mit Vorgabestellungen ("Eröffnungsdatenbank"; siehe Turnierdialog) wäre besser, sonst ist eigentlich unklar wozu Engine A(W) vs. Engine B(S) mehr als einmal ausgetragen werden sollte. Sie "diskutieren" dann nur erneut die (Grund-)stellung; daß solche Partien sich trotzdem voneinander unterscheiden (können) beruht mehr auf technischen Zufällen sozusagen. Partien ganz ohne Bücher oder Vorgaben sind als Experimente evtl. sinnvoll, aber dann normalerweise nur zwei Partien je Gegnerpaar bei Farbtausch f.d. zweite.

Es gibt zahleiche kostenlose "neutrale" Testbücher(*) und diverse sog. Suites, das sind PGN-Files mit einer Anzahl Vorgabevarianten. Oder man nimmt je Engine ein eigenes Buch das z.B. mitgeliefert wurde, und natürlich auf Platte sein muß.

*) beispielsweise unter http://members.aon.at/computerschach/links.htm#downloads

Ansonsten wäre m.E. typisch bzw. normal und sollte keine solchen Probleme hervorrufen:

128...512 MB Hashgröße (größer bringt insbesondere für 10m+3s wohl fast nichts). Falls nur 1 GB RAM, dann keinesfalls mehr als 256 MB Hash nehmen (wird 2x benötigt, da je Engine). Mehr Gesamt-Hash als physisch RAM vorhanden ist, führ zum gefürchteten, Performance zerstörenden Speicher-Swapping, das ja bereits erwähnt wurde.

je 2 CPU-Kerne bzw. Threads je Engine falls Ponder ON (wenn ingesamt 4 Kerne vorhanden sind), oder
alle CPU-Kerne je Engine mit Ponder OFF. Dann kommen sich die Engines nicht in die Quere sondern wechseln sich ab.

P.S. Falls das Problem weiterbesteht - hoffentlich nicht, viel Glück - dann poste evtl. eine Partie mit kompl. Recheninfos in der Notation. Dann sieht man auch die Rechentiefe und andere User mit vergleichbarer Hardware haben mehr Indizien zur Ferndiagnose.
Parent - - By Ernest Bonnem Date 2010-07-02 19:54
[quote="Michael Scheidl"]Es gibt zahleiche kostenlose "neutrale" Testbücher(*)[/quote]
Hallo Michael,
Ich benütze für meine Test-Matches nur dein Buch PB5moves.ctg  (Jahr 2008) 
Wie betrachtest Du (heute) dieses Buch, und würdest Du (heute) ein anderen empfehlen?
Parent - - By Werner Kiefert Date 2010-07-03 10:11
Hallo, vielen Dank für die Antworten. Mein Problem, und das habe ich schon vermutet, kann daran liegen, dass ich etwas ungünstig konfiguriert habe. Ich wußte nicht, was, denke jetzt an die Hashgröße.
Zunächst die Daten zur Hardware, die ich der Kaufrechnung entnehme: CPU Intel Core i7 Quad Core 950, 4*3,06 Hz, 8 MB Cache, 2 Stück RAM DDR-3 PC1333 - 4096 MB Kit * Kingston, HDD Sata-II Samsung 1TB 32MB Cache, Grafikkarte Asus GF9600GT, Betriebssystem Windows 7 Home Edition. An der Hardware dürften die Probleme eigentlich nicht liegen.
Interessant sind die Bemerkungen zur Hashgröße. Mehr durch Zufall bin ich bei den Enginematches auf ein Fenster gestoßen, indem eine Hashgröße von 600 MB angegeben war. Ich dachte, je größer die Hashtables um so besser. Wozu habe ich 8 GB RAM, da gebe ich doch mal jeder Engine 2 GB. Vielleicht ist dies falsch, ich habe es noch nicht getestet.
Ich hatte auch vage angenommen, dass die Schachprogramme die Hardware erkennen und die Parameter danach optimal eingestellt werden. Wenn die Hashgröße so wichtig ist, wo finde ich allgemeine Hinweise zur richtigen Einstellung?
Ebenfalls neu sind für mich die Hinweise zu swapping und ponder. Damit kann ich im Moment noch nichts anfangen, versuche, mich da schlau zu machen. Was die Zuteilung der Kerne anbelangt, habe ich wissentlich nichts unternommen. Die Chessbase-Oberfläche zeigt immer 8 CPU an, wobei 4 wohl nur virtuell sind, was ich so hinnehme, aber auch nicht richtig verstehe.
Was die Eröffnungsbücher anbelangt, so habe ich irgendwo gelesen, es wäre ratsam, sie bei Vergleichen nicht einzusetzen, um gezielt die Engine-Stärke zu messen. Wenn man so vorgeht, scheint mir immer noch vernünftig, dass die Engines hier nicht zu viel Rechnerzeit investieren. Es wird kaum gelingen, den optimalen ersten Zug zu errechnen. Wäre es nicht möglich, nach einer bestimmten Tiefe innerhalb einer gewissen Bewertungsbandbreite einen Zug zufällig auszuwählen? Aber die Programmierer werden sich bei der Zeiteinteilung schon etwas gedacht haben, letztendlich besitze ich nicht die Kompetenz, die Strategien mit all ihren Besonderheiten zu beurteilen.
Viele Grüße von Werner aus Siegen  
Parent - By ernst happe Date 2010-07-03 10:33
hash 32 - 64 MB ist sehr oft optimal!!! nur für langzeit analysen kann manchmal mehr sinnvoll sein.
einfach mal an ein paar stellungen ausprobieren!
Parent - By Michael Scheidl Date 2010-07-05 14:01
[quote="Werner Kiefert"] Was die Eröffnungsbücher anbelangt, so habe ich irgendwo gelesen, es wäre ratsam, sie bei Vergleichen nicht einzusetzen, um gezielt die Engine-Stärke zu messen. [/quote]
Das war vermutlich nicht die komplette bzw. vielleicht eine unvollständig formulierte Empfehlung, denn gemeint war wohl: Um gezielt die Engine-Stärke zu messen, nicht die jeweils enginespezifischen Bücher einzusetzen, da man sonst ein Paket aus Engine + ihr (angepaßtes) Buch zusammen testet. Aber Bücher an sich, oder ein Set von Vorgabestellungen zu benutzen, ist eigentlich notwendig um eine vernünftige Bandbreite verschiedener, qualitätvoller Eröffnungen zu erhalten. Nur eben "allgemeine" Bücher und Vorgaben, wenn man Enginestärke isoliert testen will.

Zu all diesen Fragen liefert die F1-Hilfe der Fritzoberfläche m.E. gute Grundinformationen. Einfach in den diversen Einstellungsdialogen den Hilfebutton drücken und ein bißchen schmökern, was das alles zu bedeuten hat. Ein kleines Problem kann die Wortwahl bzw. Übersetzung dt./engl. sein; Ponder(n) beispielsweise bedeutet Rechnen in gegnerischer Bedenkzeit, auch bekannt als Permanent Brain - sodaß in einem Match dann beide Engines gleichzeitig Rechenleistung beanspruchen. Dann sollte man logischerweise je einer höchstens die halbe Anzahl CPU-Cores zuordnen.

2 GB Hash je Engine ist bei 4 GB Gesamt-RAM natürlich zu viel, sodaß es ganz sicher zu massivem Swapping kam. Windows, div. Tools und die Schachoberfläche benötigen ja auch Speicher. Ich bin 99% sicher, daß wir hiermit das Problem gefunden haben. - Es besteht übrigens keine dramatische Korrelation zwischen Hashgröße und Spielstärke (von ganz extrem kleinen im Vergleich zu normalen Größen einmal abgesehen). Ich zweifle, ob z.B. ein Unterschied in Elo zwischen 256 MB und 1 GB statistisch nachweisbar ist.
Parent - - By Michael Scheidl Date 2010-07-05 14:24
Falls man tatsächlich ein so kurzes Buch möchte, halte ich es nach wie vor für geeignet. Es beruht auf meinem konzeptionell besseren "Balanced"-Buch bzw. der zugrundeliegenden "ausgewogenen" Datenbank, nicht auf dem alten PB12moves wo ich noch nicht so weit war.

Man erhält aber dasselbe Ergebnis, wenn man etwa das Balanced-16.ctg benutzt, aber die Buchtiefe im Turnierdialog auf 5 begrenzt. Ich selber bin ja von den Kurzbüchern weggekommen; die von menschlichen Meistern gebildete Theorie ist. m.E. gut genug daß man ihr über mehr Züge trauen kann. Aber es gibt natürlich auch experimentelle Anwendungen wie z.B. die Suche nach etwaigen, überraschenden frühen Neuerungen...

Allerdings halte ich es für sinnvoll, daß man im Computerschach für die Eröffnungsunterstützung an Engines zwischen Eröffnungstheorie einerseits (die ja oft bis weit ins Mittelspiel reicht, wenn nicht gar darüber hinaus) und der eigentlichen Eröffnung andererseits unterscheidet. Letztere, also vereinfacht gesagt ein weitgehender Abschluß der Entwicklung oder so, geht wohl allmeistens höchstens über 10...12 Züge. Auch wenn sich irgend etwas, das nach 20 Zügen oder später passiert, noch so organisch direkt aus der Eröffnung ergeben mag und von GM tausendfach abgespult wird, ist das doch längst Mittelspiel und keine eigentliche Eröffnung mehr. So sehe zumindest ich das. D.h., wenn man Engines in Computerpartien in diese Pfade zwingt, gibt man eigentlich schon eine - mitunter fragwürdige - "Unterstützung" für das Mittelspiel dazu. Somit bin ich sowohl bei sehr kurzen als auch bei sehr tiefen Büchern skeptisch; es hängt natürlich auch vom konkreten Anwendungszweck ab.
Parent - By Werner Kiefert Date 2010-07-09 13:18
Hallo, das Schach Magazin 64 vom Juli 2010 bringt ab Seite 34 Engine-Partien zwischen Stockfish 1.7.1 und Rybka 4. In der ersten der dort veröffentlichten Partien heißt es wörtlich: "Um einen reinen Spielstärkevergleich ermitteln zu können, hatte Tester Silver beiden Programmen die Eröffnungsbücher angedreht."  Was soll ich von solch einer Bemerkung halten? Mir jedenfalls erschien der Hinweis plausibel, ich bin genau so verfahren, mit dem geschilderten Ergebnis.
Mit freundlichen Grüßen
Werner Kiefert
Up Topic Hauptforen / CSS-Forum / Zeiteinteilung bei Enginematches

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill