Donnerstag, 26. August 2010

FastFruit

Vor zwei Tagen kam in diesem Beitrag der Verdacht auf, dass Fruit 2.1 bei sehr kurzen Bedenkzeiten überdurchschnittlich erfolgreich agiert. Lagen doch auf einem Resurrection II Schachcomputer (500 MHz XScale) im Aktivschach nur 137 Elo zwischen Fruit 2.1 und Shredder 12. Fruit spielte, auf dem 8-mal langsameren 200 MHz StrongARM, sogar nur 72 Punkte schwächer.

Um den Verdacht zu erhärten und ein Zufallsergebnis auszuschließen, kommt es jetzt zu einem Ultra-Blitz-Match. Teilnehmer sind Houdini 1.03a, Shredder 12 und Fruit 2.1. Ausgetragen auf einem Asus EeePC 901 mit Intel Atom N270 1.6 GHz Prozessor unter WinXP. Dieser ist rund 90-mal schneller als der 200 MHz StrongARM des Resurrection.

Als Turniermanager gelangt LittleBlitzer 2.4 zum Einsatz. Damit lassen sich automatische Wettkämpfe zwischen UCI-Engines mit Bedenkzeiten von z.B. 1"+0.1" bewältigen. Jede Seite erhält so eine Sekunde für die gesamte Partie plus 100 ms Zeitgutschrift für einen ausgeführten Zug. Als Eröffnungsvorgabe dienten Dann Corbits 400 neutrale Positionen, die mit beiden Farben zu absolvieren sind. Das Rundenturnier (Jeder gegen jeden) ging völlig problemlos über die Bühne. Vielen Dank an Nathan Thom, dem Programmierer von LittleBlitzer; er ist auch Autor der Engine LittleThought.

Hier die überraschenden Ergebnisse mit 1 Thread, 32 Bit, Ponder OFF und 8 MB Hash

LittleBlitzer 2.4 auf Atom 1.6 GHz, 1"+0.1" pro Spiel 
Games Completed = 2400 of 2400 (Avg game length = 9.005 sec)
Time = 24924 sec elapsed, 0 sec remaining

 1.Fruit 2.1       639.5/1600    564-885-151
                   (L: m=815 t=0 i=0 a=70)
                   (D: r=84 i=34 f=16 s=11 a=6)
                   (tpm=95.0 d=7.2 nps=0)
 2.Houdini 1.03a  1074.0/1600    999-451-150
                   (L: m=202 t=0 i=0 a=249)
                   (D: r=77 i=27 f=25 s=9 a=12)
                   (tpm=91.1 d=9.9 nps=323110)
 3.Shredder 12     686.5/1600    585-812-203
                   (L: m=621 t=0 i=0 a=191)
                   (D: r=121 i=37 f=25 s=10 a=10)
                   (tpm=96.5 d=7.0 nps=218780)

Bayeselo Auswertung
Rank Name                Elo    +    - games score oppo. draws
   1 Houdini 1.03a      2932   11   11  1600   67%  2791    9%
   2 Shredder 12        2800   10   10  1600   43%  2857   13%
   3 Fruit 2.1          2781   11   11  1600   40%  2866    9%

Shredder wurde für die Auswertung auf 2800 Elo gesetzt. Der Abstand zu Houdini ist sehr ähnlich wie auf aktueller Hardware unter "normalen" Bedenkzeiten. Aber Fruit 2.1 liegt weit über den zu erwartenden 2500 Elo.

Im Durchschnitt dauerte eine Partie 9 Sekunden und pro Zug wurde ca. 95 ms gerechnet. Bezogen auf den StrongARM wären das 8,5 Sekunden/Zug, also rund ein Viertel der Aktivschachbedenkzeit des Resurrection. Übrigens ging keine einzige Partei wegen Zeitüberschreitung oder illegaler Züge verloren (siehe oben bei Lost: t=0 und i=0).

Update 1 vom 27.08.10:

Fruit 2.1 und Ruffian 2.1.0 im Gauntlet gegen Critter, Houdini, Onno, Shredder und Sjeng auf deutlich schnellerem Intel Core2Quad; ansonsten wie gehabt.
 
Bayeselo Auswertung
Rank Name                  Elo    +    - games score oppo. draws
   1 Houdini 1.03a        2933   15   15  1600   70%  2757    4%
   2 Shredder 12          2800   14   14  1602   55%  2757   14%
   3 Critter 0.80         2794   14   14  1604   55%  2757   15%
   4 Fruit 2.1            2763    8    8  4803   46%  2796   15%
   5 Deep Sjeng 3.0       2755   14   14  1603   50%  2757   21%
   6 Ruffian 2.1.0        2750    8    8  4802   44%  2799   15%
   7 Onno 1.0.4           2745   14   14  1598   48%  2757   21%

LittleBlitzer 2.4 auf C2Q 2.4 GHz, 1"+0.1", Gauntlet Fruit 2.1 
Games Completed = 4803 of 4800 (Avg game length = 9.226 sec)
Time = 11652 sec elapsed, -7 sec remaining
 1.Fruit 2.1      2221.5/4803    1857-2217-729
                  (L: m=1968 t=0 i=0 a=249)
                  (D: r=417 i=141 f=106 s=27 a=38)
                  (tpm=95.6 d=8.4 nps=0)
 2.Critter 0.80   419.0/802    359-323-120
                  (L: m=153 t=0 i=0 a=170)
                  (D: r=81 i=18 f=14 s=4 a=3)
                  (tpm=72.4 d=10.0 nps=965792)
 3.Deep Sjeng 3.0 382.5/801    303-339-159     
                  (L: m=280 t=0 i=0 a=59)
                  (D: r=77 i=44 f=24 s=3 a=11)
                  (tpm=73.8 d=8.6 nps=0)
 4.Shredder 12    424.0/801    373-326-102
                  (L: m=132 t=0 i=0 a=194)
                  (D: r=59 i=12 f=20 s=3 a=8)
                  (tpm=93.9 d=8.8 nps=759572)
 5.Houdini 1.03a  551.0/800    535-233-32
                  (L: m=58 t=0 i=0 a=175)
                  (D: r=18 i=2 f=5 s=4 a=3)
                  (tpm=94.9 d=12.6 nps=1733459)
 6.Onno 1.0.4     389.0/800    293-315-192
                  (L: m=222 t=0 i=0 a=93)
                  (D: r=127 i=30 f=22 s=9 a=4)
                  (tpm=95.8 d=10.7 nps=1281003)
 7.Ruffian 2.1.0  416.0/799    354-321-124
                  (L: m=258 t=6 i=0 a=57)
                  (D: r=55 i=35 f=21 s=4 a=9)
                  (tpm=70.3 d=7.3 nps=2320562)

LittleBlitzer 2.4 auf C2Q 2.4 GHz, 1"+0.1", Gauntlet Ruffian 2.1.0
Games Completed = 4003 of 4000 (Avg game length = 8.565 sec)
Time = 9142 sec elapsed, -7 sec remaining
 1.Ruffian 2.1.0 1705.0/4003    1410-2003-590
                  (L: m=1805 t=24 i=0 a=174)
                  (D: r=294 i=105 f=90 s=40 a=61)
                  (tpm=78.0 d=7.3 nps=2324921)
 2.Critter 0.80   460.0/802    401-283-118
                  (L: m=165 t=0 i=0 a=118)
                  (D: r=60 i=22 f=14 s=8 a=14)
                  (tpm=73.8 d=9.8 nps=939128)
 3.Deep Sjeng 3.0 415.0/802    329-301-172     
                  (L: m=228 t=0 i=0 a=73)
                  (D: r=77 i=38 f=29 s=10 a=18)
                  (tpm=75.5 d=8.4 nps=0)
 4.Shredder 12    465.0/801    404-275-122
                  (L: m=139 t=0 i=0 a=136)
                  (D: r=74 i=14 f=13 s=10 a=11)
                  (tpm=94.3 d=8.7 nps=738953)
 5.Houdini 1.03a  572.0/800    556-212-32
                  (L: m=65 t=1 i=0 a=146)
                  (D: r=13 i=5 f=5 s=6 a=3)
                  (tpm=95.2 d=12.5 nps=1716253)
 6.Onno 1.0.4     386.0/798    313-339-146
                  (L: m=236 t=0 i=0 a=103)
                  (D: r=70 i=26 f=29 s=6 a=15)
                  (tpm=96.0 d=10.7 nps=1279029)
Oldies, but Goldies ... auch Ruffian 2.1.0 schlägt sich weitaus besser als erwartet. Muß dabei sogar 30 Verluste wegen Zeitüberschreitung verkraften. Diesmal liegt die hochgerechnete Bedenkzeit bereits über der eines 200 MHz StrongARM im Aktivschach.


Update 2 vom 28.08.10:

Fruit 2.1 nochmal gegen Shredder 12 auf Core2Quad. Aber diesmal mit Franks 5120 Eröffnungen.
 
LittleBlitzer 2.4 auf C2Q 2.4 GHz, 1"+0.1"
Games Completed = 10243 of 10240 (Avg game length = 10.172 sec)
Time = 30096 sec elapsed, -9 sec remaining
 1.Fruit 2.1     4643.0/10243    3992-4949-1302
                  (L: m=4467 t=0 i=0 a=482)
                  (D: r=763 i=248 f=147 s=42 a=102)
                  (tpm=96.4 d=9.0 nps=0)
 2.Shredder 12   5600.0/10243    4949-3992-1302     
                  (L: m=1904 t=0 i=0 a=2088)
                  (D: r=763 i=248 f=147 s=42 a=102)
                  (tpm=99.1 d=8.7 nps=901163)

Bayeselo Auswertung
Rank Name              Elo    +    - games score oppo. draws
   1 Shredder 12      2800    3    3 10243   55%  2763   13%
   2 Fruit 2.1        2763    3    3 10243   45%  2800   13%


Fazit: Erneut kein Verlust wegen Zeitüberschreitung bei über 10000 Partien! Andere "moderne" Engines bestätigen weitgehend ihren relativen Abstand zu Shredder. Aber Fruit 2.1 und Ruffian 2.1.0 punkten, bei extrem kurzen Zeitkontrollen, deutlich über den Erwartungen.

Mittwoch, 25. August 2010

BT 2630#27

BT 2630 Teststellung #27

Die 30 Stellungen des BT 2630 Tests dienten in den 90er Jahren des letzten Jahrhunderts zur relativ schnellen Einschätzung der Spielstärke eines Schachcomputers. Entwickelt wurde der Test von Hubert Bednorz und Freddy Tönissen mit der Zielsetzung Werte zwischen rund 1900 und 2630 (Elo) ermitteln zu können.

Die Stellung Nr. 27 vom Bild links wird diesmal von Engines auf einem - nicht mehr ganz taufrischem - Pocket PC mit ARM-CPU analysiert. Notiert sind die Zeiten und Rechentiefe bis zum Erscheinen des Zuges 1.e6 in der Anzeige.

Sind bei den Ergebnissen keine Angaben zur Hardware hinzugefügt, dann wurde die Einstellung 208 MHz auf einem Intel XScale PXA270 unter Windows Mobile 5 verwendet.







Hardware
Pocket PC unter WM5 mit Intel XScale PXA270 @ 208 MHz, oder
iPod = iPod touch 2. Generation ARM11 532 MHz
Palm = DragonBall SuperVZ @ 75 MHz (68000), 2.12 TigerMark
+ einige Schachcomputer mit diversen CPUs

Schach GUIs Pocket PC
CE B = CE Board, mit 4 MB Hash (= einstellbares Minimum)
PoFr = Pocket Fritz 3/4, mit 2 MB Hash
PoGM = Pocket Grandmaster 2/3/4, mit 2 MB Hash
SCID = SCID Pocket 4, mit 2 MB Hash (= einstellbares Maximum)


- Pocket Grandmaster      1"  Tiefe  5 PoGM (=Anaconda 2.0.1)
- ChessGenius 2.2         2"  Tiefe  5
- Glaurung 1.2.1          2"  Tiefe  9 SCID
- Gromit 3.10.16          2"  Tiefe  6 PoGM
- Mastersoft Chess 1.18   2"  Tiefe  7 iPod
- Toga II 1.3.4           2"  Tiefe  9 SCID
- Fritz Chess 1.4         3"  Tiefe  6 iPod
- Scorpio 2.0             3"  Tiefe  7 SCID
- Viper 0.1               3"  Tiefe 10 SCID
- Glaurung 2.1 iPod       4"  Tiefe 10 iPod (=Stockfish 1.8)
- Greko 6.0               4"  Tiefe  9 PoFr
- Ruffian 1.0.4           4"  Tiefe  8 PoGM

- Stockfish 2.2 iPod      4"  Tiefe 10 iPod (=Stockfish 2.0.1)
- Greko 6.0               5"  Tiefe  9 SCID
- Pocket Fritz 3          5"  Tiefe  8 PoFr (=HIARCS 12.1)   
- Pocket Fritz 4          5"  Tiefe  9 PoFr (=HIARCS 13)
- GambitFruit 1.0ß4bx     6"  Tiefe 10 SCID
- Toga II 3.1.2SE         6"  Tiefe  8 PoGM
- Fruit 2.1               7"  Tiefe  9
CE B/PoGM/SCID
- Toga II 1.2.1a          7"  Tiefe  8 CE B/PoGM/SCID
- Pocket Fritz 4.3        8"  Tiefe 10 PoFr (=HIARCS 13.1)
- Naum 4.1               11"  Tiefe 11 PoFr
- Shredder Chess 1.3     13"  Tiefe 12 iPod (=Shredder 12)
- Robbolito 0.85         13"  Tiefe 14 SCID

- Chess Tiger 2011       14"  Tiefe 13 iPod
- Crafty Classic 2004    18"  Tiefe  9 CE B
- Toga II 1.4.1SE        21"  Tiefe  9 PoFr/SCID
- Crafty 23.0            23"  Tiefe 11 PoFr
- Phalanx XXII           23"  Tiefe  7 SCID
- Fruit 2.1              25"  Tiefe  9 PoGM StrongARM 206 MHz
- Naum 4.0               25"  Tiefe 13 PoFr
- Pocket Shredder 1.0    28"  Tiefe 11 (=Shredder 11)
+ Resurrection Ruffian   38"  StrongARM 203 MHz 12 MB Hash
- Scidlet 3.4            49"  Tiefe 11 SCID
- Naum 3.5               53"  Tiefe 15 PoFr
- Abaia 1.0.1            65"  Tiefe 13 iPod (=Glaurung 2.2)
- Glaurung 2.1           72"  Tiefe 11 PoFr
- Fruit 2.31             73"  Tiefe 13 CE B
- Fruit 2.31             83"  Tiefe 13 SCID
- ChessTiger 15.1       110"  Tiefe  9 Palm 3 MB Hash
- SOS 1.0               116"  Tiefe 11 PoGM
+ TASC R30 2.5 aktiv    151"  ARM 30 MHz 1 MB Hash
- HIARCS 9.5a           190"  Tiefe  7 Palm 0.5 MB Hash
+ Fidelity Elite V11    218"  68060 72 MHz 2 MB Hash
- Mephisto Roma 32 Bit  232" 
68020 M.E.S.S. @ C2D 2.4 GHz
+ Mephisto London       281"  68030 33 MHz 0.5 MB Hash
- Pocket Fritz 2        370"  Tiefe 13 (=Shredder 7.04)
+ Novag Star Diamond    606"  H8 25 MHz 0.1 MB Hash
- ChessGenius 1.7      2860"  Tiefe 12 Palm


+ kennzeichnet Werte für Schachcomputer, die der Schachcomputer Wiki entnommen wurden
unterstrichene Einträge markieren später erschienene Programme: Letztes Update am 09.03.2011

Dienstag, 24. August 2010

Fruit 2.1 Resurrection

Von den Mitgliedern der Schachcomputer.info-Community werden seit Jahren zahlreiche Turniere zwischen den verschiedensten Schachcomputern ausgetragen. Häufig mit Spielzeiten zwischen 30-60 Minuten pro Partie bzw. im Durchschnitt 30 Sekunden pro Zug.

Erstaunlich sind die veröffentlichten Ergebnisse der 6. Aktivschach Elo Liste (1-2010) bezüglich der Spielstärke von Fruit 2.1 auf dem Resurrection.

Resurrection II, XScale 500 MHz  Shredder 12   2729
Resurrection II, XScale 500 MHz  Fruit 2.1     2592
Resurrection, StrongARM 200 MHz  Fruit 2.1     2520
 

Demnach liegen zwischen Fruit 2.1 auf 200 MHz StrongARM und 500 MHz XScale im Aktivschach 72 Punkte. Und auf dem XScale trennen Fruit 2.1 und Shredder 12 lediglich 137 Elo. Letzteres fällt sofort auf, erwartet man doch auf aktueller x86 Hardware rund 300 Elo zwischen diesen Engines.

In Ermangelung eines Resurrection ermitteln wir die Geschwindigkeit von Fruit 2.1 auf ARM Prozessoren mit Hilfe des Pocket Grandmaster und vergleichen sie mit Intel x86 CPUs. Verwendete Pocket PCs: HP Jornada 568 mit SA-1110 unter Windows PPC 2002, ein auf 520 MHz übertakteter PocketLoox N500 mit Intel XScale PXA270 unter Windows Mobile 5 sowie HTC HD 2 mit Qualcomm Snapdragon 8250B und Windows Mobile 6.5.

Schach Benchmark: gemessene Zeit in Sekunden bis zum Erreichen der Tiefe 26 in der oben abgebildeten Stellung mit Fruit 2.1 und 8 MB Hash.

- StrongARM      206 MHz  10200"     9 kN/s (HP Jornada 568)
- Pentium MMX    133 MHz   1600"    59 kN/s (Toshiba 300CT)
- XScale         520 MHz   1340"    71 kN/s (PocketLoox N500)
- Snapdragon    1000 MHz    240"   400 kN/s (HTC HD 2)
- Atom N270     1600 MHz    118"   800 kN/s (EeePC 901)
- Core 2 T7500  2200 MHz     26"  3500 kN/s

In diesem Endspiel ergibt sich ein fast 8-facher Zeitunterschied zwischen StrongARM (206 MHz) und XScale (520 MHz). Selbst wenn die Differenz in der Spielpraxis etwas geringer ausfiele, erklärt das nicht die 72 Elo Abstand der beiden Resurrections in der Aktivschach Liste. Denn normalerweise bringt jede Verdopplung der Geschwindigkeit einen Zuwachs von 50-70 Punkten. Im Schach erreicht der Intel XScale, bei gleicher Taktfrequenz, rund die dreifache Leistung eines StrongARM; das ist knapp ein Drittel des Ur-Pentium.

Eine Folgerung aus diesen Daten wäre, dass Fruit 2.1 überdurchschnittlich erfolgreich auf "schwacher" Hardware bzw. bei extrem kurzen Zeitkontrollen abschneidet. Damit erklärte sich auch der - viel geringer als erwartet ausfallende - Abstand zu Shredder 12 auf dem Resurrection II. Oder hatte der Zufall seine Hände im Spiel? Ist doch die statistische Schwankungsbreite dieser drei Elo Werte, auf Grund der geringen Anzahl gespielter Partien, recht hoch.

Nun besteht, zwischen dem StrongARM und einem modernen Core i5/7, gar ein Geschwindigkeitsfaktor 1000. Dann werden aus vormals 30 Sekunden pro Zug bereits 2 Sekunden pro Spiel. Das schreit förmlich nach einem Ultra-Blitz-Match zwischen Fruit und Shredder. Einige Fragen bleiben dabei offen: ändern Engines ihr Spielverhalten, wenn sie immer knapp an einer möglichen Zeitüberschreitung agieren? Welche GUI erlaubt überhaupt derart schnelle Spielbedingungen?

Update vom 26.08.10: mehr dazu bei FastFruit

Dienstag, 10. August 2010

Fruit2Rybka

Fruit 1.0 von Fabien Letouzey erschien im März 2004 mit einer Spielstärke von etwa 50 Elo-Punkten über dem Niveau von Dusan Dobes Phalanx XXII aus dem Januar 2000. Anfänglich fand das Programm geringe öffentliche Beachtung. Doch innerhalb von 5 Quartalen gelang dem Entwickler eine Steigerung um 250 Elo! Der im Quellcode veröffentlichte Fruit 2.1 drang damit in die damalige kommerzielle Spitzengruppe, rund um Fritz 8 und Shredder 9, vor.

Kein Jahr später lehrte Vasik Rajlich mit Rybka der Konkurrenz das Fürchten. Die finale 32-Bit Version 1.2 war im März 2006 bereits 200 Punkte stärker als Fruit 2.1.


2004/06  Fruit 1.0  Fruit 1.5        ♘♘
2004/12  Fruit 1.5  Fruit 2.0        ♘♘♘♘
2005/06  Fruit 2.0  Fruit 2.1        ♘♘♘♘
2007/07  Fruit 2.1  Fruit 2.3.1      ♘♘♘
2008/11  Fruit 2.1  Grapefruit 1.0b  ♘♘♘♘♘♘
2005/12  Fruit 2.1  Rybka 1.0 Beta   ♘♘♘
2006/03  Rybka 1.0 Beta  Rybka 1.2f  ♘♘♘
2006/06  Rybka 1.2f  Rybka 2.3.2a    ♘♘
2008/08  Rybka 2.3.2a  Rybka 3       ♘♘♘♘
2010/05  Rybka 3  Rybka 4           

25
♘♘♘♘ 4 x 25 100

Montag, 9. August 2010

openSUSE 11.3 64-Bit Linux

Die Linux Distribution openSUSE 11.3 64-Bit bietet eine optimale Basis für Computerschach.

Nach der Installation von wine 1.2 mittels YaST funktionieren - dank vorbereitetem WoW64 - die meisten 32- und 64-Bit Schach Engines aus der Windows Welt. Auch das Aufspielen der Windows Schach-GUI Shredder Classic 4 klappt problemlos.

Nach einer ersten Konfiguration der Shredder Benutzeroberfläche sollte nicht vergessen werden, diese als "Benutzerlayout", zu speichern. Denn, nach einem Minimieren nebst erneutem Öffnen der Shredder GUI, erscheint nur ein leerer weißer Bereich. Mit dem Menüpunkt "Fenster/Fensterlayout/Benutzerlayout laden..." können aber alle Elemente der Oberfläche zurückgeholt werden. Ein kleiner Bug, der bestimmt in einer künftigen wine-Version behoben wird.

Nachtrag vom 11.08.2010:

Der Schachmeister 2010 bzw. Großmeister Schach - eine leicht abgespeckte Fritz 11 GUI nebst Fritz 9 Engine, die z.B. dem PC Magazin 4/2010 auf DVD beilag - funktioniert ebenfalls ohne größere Probleme mit openSUSE 11.3.

Gut gemacht Novell