Skip to content
Machines virtuelles accélérées

Psion Chess 2.13 : un 286 à 1800 MHz

Le programme de Richard Lang de 1987 tourne ici sur un PC 286 émulé cent douze fois trop rapide. Même binaire, même pendule, 232 points Elo de plus — et une leçon assez nette sur ce que la vitesse pure finit par ne plus rapporter.

286 à 16 MHz1924
286 à 1800 MHz2157
Écart+232
Rapport d'horloge×112,5
Parties mesurées283 + 173

Le même programme, deux horloges

Psion Chess 2.13 est un programme DOS de 1987. Il ne sait rien de l'ordinateur sur lequel il tourne : il demande l'heure au BIOS, remplit sa table de transposition et calcule. C'est tout l'intérêt de l'émulation — pour l'accélérer, il n'y a rien à modifier dans le programme, il suffit de changer la vitesse de la machine sous lui.

Le PC 286 est émulé par QEMU, qui compte le temps en instructions plutôt qu'en secondes réelles : l'option -icount attribue à chaque instruction une durée virtuelle fixe. À 16 MHz, c'est 256 nanosecondes par instruction, soit 3,8 millions d'instructions par seconde — exactement le débit d'un vrai 80286 à 16 MHz pour ce programme, dont le coût moyen mesuré sur le 286 de MAME est de 4,19 cycles par instruction. Pour la version accélérée, la même instruction ne coûte plus que 2 nanosecondes, avec un facteur de bridage de 0,86 pour tomber juste : 429 millions d'instructions par seconde au lieu de 3,8 millions.

La pendule, elle, ne change pas : 60 coups en 15 minutes de temps réel, comme pour tout le laboratoire. Les deux versions ont consommé la même chose — 15 secondes par coup en médiane à 16 MHz, 16 secondes à 1800 MHz. Même temps de réflexion, cent douze fois plus de travail accompli dedans. C'est la seule variable qui change entre les deux colonnes de cet article.

Les mêmes adversaires, deux fois

Les deux versions n'ont pas affronté le même plateau : le gauntlet de classement place chaque moteur face à des adversaires de son niveau, et le Psion accéléré est monté de deux étages dans l'échelle. Onze adversaires se retrouvent pourtant dans les deux listes, et ce sont eux qui donnent la mesure propre.

AdversaireCote16 MHz%1800 MHz%Écart (pts de %)
Fruit 2.1 ARM9 30 MHz23100 / 30 %2,5 / 1025 %+25
Fruit 2.1 68040 40 MHz22401 / 1010 %4,5 / 1045 %+35
MChess 1.71 486DX 33 MHz21931 / 1010 %4 / 1040 %+30
Mephisto RISC II22284 / 1040 %3,5 / 1035 %−5
Rebel 6 486DX 33 MHz21803 / 1030 %7 / 1070 %+40
Saitek Sparc (rev. 518)21652 / 1020 %7 / 1070 %+50
Fidelity Elite Avantgarde V921252 / 1020 %5 / 1050 %+30
Mephisto Berlin 6800021201,5 / 1015 %5 / 1050 %+35
Novag Sapphire21013,5 / 1035 %5,5 / 1055 %+20
Fidelity Designer Mach IV20793,5 / 1035 %8,5 / 1085 %+50
Fidelity Designer Mach III20292 / 1020 %7,5 / 1075 %+55
Total (11 adversaires communs)23,5 / 10323 %60 / 11055 %+32
286 à 16 MHz (vitesse d'époque) 286 à 1800 MHz 0 % 25 % 50 % 75 % 100 % cote score du Psion contre l'adversaire Fruit 2.1 ARM9 30 MHz (2310) : 16 MHz 0/3 (0 %), 1800 MHz 2,5/10 (25 %) Fruit 2.1 ARM9 30 MHz 2310 Fruit 2.1 68040 40 MHz (2240) : 16 MHz 1/10 (10 %), 1800 MHz 4,5/10 (45 %) Fruit 2.1 68040 40 MHz 2240 MChess 1.71 486DX 33 MHz (2193) : 16 MHz 1/10 (10 %), 1800 MHz 4/10 (40 %) MChess 1.71 486DX 33 MHz 2193 Mephisto RISC II (2228) : 16 MHz 4/10 (40 %), 1800 MHz 3,5/10 (35 %) Mephisto RISC II 2228 Rebel 6 486DX 33 MHz (2180) : 16 MHz 3/10 (30 %), 1800 MHz 7/10 (70 %) Rebel 6 486DX 33 MHz 2180 Saitek Sparc (rev. 518) (2165) : 16 MHz 2/10 (20 %), 1800 MHz 7/10 (70 %) Saitek Sparc (rev. 518) 2165 Fidelity Elite Avantgarde V9 (2125) : 16 MHz 2/10 (20 %), 1800 MHz 5/10 (50 %) Fidelity Elite Avantgarde V9 2125 Mephisto Berlin 68000 (2120) : 16 MHz 1,5/10 (15 %), 1800 MHz 5/10 (50 %) Mephisto Berlin 68000 2120 Novag Sapphire (2101) : 16 MHz 3,5/10 (35 %), 1800 MHz 5,5/10 (55 %) Novag Sapphire 2101 Fidelity Designer Mach IV (2079) : 16 MHz 3,5/10 (35 %), 1800 MHz 8,5/10 (85 %) Fidelity Designer Mach IV 2079 Fidelity Designer Mach III (2029) : 16 MHz 2/10 (20 %), 1800 MHz 7,5/10 (75 %) Fidelity Designer Mach III 2029

Sur ces onze adversaires et 213 parties, le score passe de 22,8 % à 54,5 %. Traduit en points Elo, cela fait +243 — en bon accord avec les +232 que donne le classement complet, calculé sur l'ensemble des 456 parties avec toutes les autres connexions du plateau.

Deux lignes méritent une réserve. Le 0/3 contre Fruit 2.1 sur ARM9 ne vaut rien statistiquement : trois parties. Et le Mephisto RISC II est le seul adversaire contre lequel l'accélération n'a rien apporté — 40 % à 16 MHz, 35 % à 1800 MHz. Sur dix parties l'écart n'est pas significatif, mais c'est la seule ligne du tableau qui descend, et elle mérite d'être refaite sur un échantillon plus large.

Ce que coûte un doublement

Le laboratoire compte maintenant plusieurs machines mesurées à deux vitesses. En rapportant le gain au nombre de doublements d'horloge, on obtient un prix du doublement — et il n'est pas constant.

MachineHorlogeRapportCoteGainElo par doublement
Saitek Turbo 16K12 MHz → 125 MHz×10,41437 → 1724+28785
Fidelity Par Excellence (B)5 MHz → 73 MHz×14,61739 → 2090+35191
Novag Constellation Forte A5 MHz → 91 MHz×18,21803 → 2057+25461
Saitek RISC 2500 v1.0414 MHz → 400 MHz×28,62180 → 2440+26054
Psion Chess 2.13 (286)16 MHz → 1800 MHz×112,51924 → 2157+23234

La tendance est claire dès qu'on dépasse le facteur vingt : au-delà, chaque doublement rapporte de moins en moins. Les deux premières lignes sont à distance de bruit l'une de l'autre et la cote de base du Turbo 16K est à prendre avec des pincettes — 8 % sur 358 parties, c'est un plancher où l'échelle Elo se comprime. Mais entre le Forte A à ×18 et le Psion à ×112, il n'y a plus d'ambiguïté : 34 points par doublement contre 61.

L'explication la plus simple est la bonne. Psion 2.13 est un programme de 1987 à recherche sélective : il élague beaucoup, voit loin dans quelques variantes et ignore le reste. Donner cent fois plus de temps à un tel programme approfondit les lignes qu'il regarde déjà, mais ne l'amène pas à regarder ailleurs. Les erreurs qui lui restent ne sont pas des erreurs de profondeur, et aucune quantité de mégahertz ne les corrigera.

Ce que la vitesse change dans les parties

Les parties s'allongent : 58 coups en médiane à 16 MHz, 66 à 1800 MHz. Le programme accéléré ne gagne pas plus vite, il perd moins vite — il tient des positions que la version d'époque lâchait au trentième coup.

Le mode de décision ne change pas : presque tout se termine par mat, 249 parties sur 283 pour la version lente, 156 sur 173 pour l'accélérée. Ces programmes et ces machines n'abandonnent pas, ils jouent jusqu'au bout.

Et il y a ce que l'accélération ne change pas du tout : sur ses 56 victoires, le Psion accéléré n'en a pas une seule remportée depuis un déficit matériel durable. Pas un sacrifice spéculatif tenu plus de quatre coups. Il gagne du matériel, puis il le convertit. C'est un matérialiste, et le rester à 1800 MHz en dit plus long sur la fonction d'évaluation de 1987 que sur la machine qui l'exécute.

Là où le gain est le plus visible, c'est contre les machines dédiées des années 1990 — Designer Mach III de 20 à 75 %, Mach IV de 35 à 85 %, Saitek Sparc de 20 à 70 % — plus que contre les programmes DOS, qui résistent mieux. Et il bat désormais des choses qui n'existaient pas quand il a été écrit : Stockfish 11 porté sur un 68020, Fruit 2.1 sur 68040, Rebel 6 sur 486.

Trois parties

Les trois qui suivent viennent toutes de la version à 1800 MHz. Les évaluations citées sont celles de Stockfish 16 à profondeur 22, en pions ; un signe positif est à l'avantage de Psion.

1. Contre Stockfish 11 sur 68020

Psion Chess 2.13 (1800 MHz) – Stockfish 11 68020 16 MHz, 1–0, 50 coups. Gambit dame refusé, variante d'échange.

L'adversaire le plus fort que le Psion accéléré ait battu : un Stockfish 11 compilé pour un 68020 à 16 MHz, coté 2383. La partie se décide en deux coups.

Après 1.d4 d5 2.c4 e6 3.Cc3 Cf6 4.Fg5 Fe7 5.e3 O-O 6.Tc1 Cc6, les noirs bouchent leur pion c, ce qui n'est pas la meilleure idée dans cette structure. Suit 7.Cf3 Te8 8.Fd3 h6 9.Fxf6 Fxf6 10.O-O b6 11.cxd5 exd5 12.Db3 Ce7 13.Dc2 c5 14.dxc5 bxc5 15.Tfd1, et la position est strictement égale : +0,07.

a8b7c6d5e4f3g2h1
Position après 15…a6, les blancs jouent. Le cavalier c3 va se poser en e4 (flèche rouge) : si le pion d5 le prend, c'est le fou d3 qui occupera e4 et ouvrira la diagonale e4-a8 sur la tour (flèche grise). La tour a8 n'est défendue que par la dame d8, et le fou c8 est sur le chemin.

15...a6 est le coup qui perd la partie. Il ne fait rien, et il laisse la tour a8 défendue par la seule dame le long de la huitième rangée — où le fou c8 fait obstacle. Stockfish donne +1,80 aux blancs après le coup suivant, contre +0,67 à la deuxième meilleure option : l'écart est déjà décisif.

16.Ce4! Le cavalier s'offre au pion d5. S'il est pris, c'est le fou d3 qui vient occuper la case e4 — et de là, la grande diagonale e4-a8 s'ouvre sur la tour.

16...dxe4 17.Fxe4 et la tour est perdue. 17...Db6 18.Fxa8.

a8b7c6d5e4f3g2h1
Position après 18.Fxa8. Les blancs ont gagné une tour contre un cavalier ; il reste à ne rien lâcher.

Le reste est de la technique, et Psion la fait proprement. 18...Ff5 19.Fe4 Fxe4 20.Dxe4 Dxb2 21.Da4 Db5 22.Dxb5 axb5 23.Txc5 : les dames partent, ce qui est exactement ce qu'il faut faire avec une tour de plus. Les noirs s'agitent encore — 32...Txe4 33.Txa5 Txg4+ — mais 35.Txa4 Cxa4 36.Ce5 liquide les dernières pièces.

39...Ce5 40.Cxe5 fxe5 et le pion h se met en route, escorté par son roi : 41.Rg4 Rf8 42.h4 Re8 43.Rh5 Rd8 44.Rxh6 Rc8 45.h5 Rd8 46.Rg5 Rc8 47.Tg7 Rb8 48.h6 e4 49.h7 e3 50.h8=D#. Le roi blanc a traversé l'échiquier de g1 à g5 en passant par h3, g4, h5 et h6 : une marche de roi de huit coups menée sans faute par un programme de 1987.

a8b7c6d5e4f3g2h1
50.h8=D# — le roi noir en b8 est mat : la nouvelle dame tient la huitième rangée, la tour g7 la septième.
1.d4 d5 2.c4 e6 3.Cc3 Cf6 4.Fg5 Fe7 5.e3 O-O 6.Tc1 Cc6 7.Cf3 Te8 8.Fd3 h6 9.Fxf6 Fxf6 10.O-O b6 11.cxd5 exd5 12.Db3 Ce7 13.Dc2 c5 14.dxc5 bxc5 15.Tfd1 a6 16.Ce4 dxe4 17.Fxe4 Db6 18.Fxa8 Ff5 19.Fe4 Fxe4 20.Dxe4 Dxb2 21.Da4 Db5 22.Dxb5 axb5 23.Txc5 b4 24.g4 Ta8 25.Tc2 g6 26.e4 Fc3 27.Td7 Te8 28.a3 Cc8 29.axb4 Fxb4 30.Rg2 Cb6 31.Tb7 Fa5 32.Tc5 Txe4 33.Txa5 Txg4+ 34.Rh3 Ta4 35.Txa4 Cxa4 36.Ce5 f6 37.Cxg6 Cc5 38.Ta7 Cd3 39.f3 Ce5 40.Cxe5 fxe5 41.Rg4 Rf8 42.h4 Re8 43.Rh5 Rd8 44.Rxh6 Rc8 45.h5 Rd8 46.Rg5 Rc8 47.Tg7 Rb8 48.h6 e4 49.h7 e3 50.h8=D# 1–0

2. Contre Fritz 3 sur 486

Fritz 3 486DX 33 MHz – Psion Chess 2.13 (1800 MHz), 0–1, 58 coups. Ouverture Dunst.

Fritz 3 est de 1994 et tourne sur un 486DX à 33 MHz, coté 2252. Il ouvre par 1.Cc3, ce que le laboratoire voit rarement. Psion répond classiquement : 1...e5 2.Cf3 Cc6 3.e4 Cf6 4.Fb5 Fb4 5.O-O O-O 6.d3 d6 7.Fg5 Fxc3 8.bxc3 De7.

Suit une longue manœuvre. Fritz double ses tours sur la colonne b et pousse une tour en b7 ; Psion prend la colonne f et ouvre le jeu par 18...f5. Au trentième coup, l'évaluation est à +0,90 pour les noirs : un petit avantage, rien de plus.

31.g3 affaiblit les cases blanches autour du roi, et 31...Dh3 vient s'y installer.

a8b7c6d5e4f3g2h1
Position après 32.Df2, les noirs jouent. Les cases blanches autour du roi blanc sont à l'abandon : la dame noire est en h3, et le cavalier va venir en g3 par h5 (flèches grises). Stockfish donne ici −6,24 contre −1,33 après 32.Rg1.

32.Df2 est l'erreur décisive. Stockfish donne −1,33 après 32.Rg1 et −6,24 après 32.Df2 : cinq points perdus d'un seul coup. Psion ne laisse pas passer.

32...Ch5 33.g4 Txg4! La tour prend le pion et s'offre sur la colonne g, face au roi blanc en g1.

a8b7c6d5e4f3g2h1
Position après 33…Txg4, les blancs jouent. La tour s'est posée sur la colonne g, face au roi blanc en g1 : seul le cavalier g3, à elle, fait écran (flèche rouge). En le déplaçant, les noirs découvrent l'échec.

34.Tf8 Cg3+ 35.Rg1 Ce4+ — et voilà le point de la combinaison : en quittant g3, le cavalier découvre l'échec de la tour g4 sur la colonne g, et se pose en e4 où il attaque la dame f2. Les blancs doivent parer l'échec, ce qui veut dire prendre la tour : 36.fxg4 Cxf2 37.Fxf2. Une tour contre une dame.

La conversion est longue mais nette : 37...e4 38.dxe4 Dxc3 39.Tf7 Dxc4 40.Te7 Fxe4, puis la poussée du pion c, 48...c4 49.Te3 Fxf3 50.Rxf3 c3 51.Re4 c2 52.Tc3 Dd2 53.Tc4 c1=D 54.Txc1 Dxc1. Le roi blanc part alors chercher les pions noirs — 55.Rf5 De3 56.Rg4 Rg6 57.Rxh4 — et ne revient pas : 57...Rf5 58.h3 Dg5#.

a8b7c6d5e4f3g2h1
58…Dg5# — le roi blanc, parti chercher les pions noirs, est mat en h4 : la dame tient g5, g4, h5 et h6, et son propre pion h3 lui bouche la dernière case.
1.Cc3 e5 2.Cf3 Cc6 3.e4 Cf6 4.Fb5 Fb4 5.O-O O-O 6.d3 d6 7.Fg5 Fxc3 8.bxc3 De7 9.Tb1 a6 10.Fxc6 bxc6 11.c4 c5 12.c3 De6 13.Dc2 h6 14.Fh4 Fd7 15.Tb7 Tfc8 16.Tfb1 Ch5 17.Rf1 Fc6 18.T7b2 f5 19.exf5 Dxf5 20.Ce1 Tf8 21.Rg1 Cf4 22.f3 Tf7 23.Ff2 Te8 24.Fe3 a5 25.Dd2 De6 26.Tb8 Txb8 27.Txb8+ Rh7 28.a3 a4 29.Rh1 Tf6 30.Dc2 Tg6 31.g3 Dh3 32.Df2 Ch5 33.g4 Txg4 34.Tf8 Cg3+ 35.Rg1 Ce4+ 36.fxg4 Cxf2 37.Fxf2 e4 38.dxe4 Dxc3 39.Tf7 Dxc4 40.Te7 Fxe4 41.Fg3 Fd5 42.Txc7 Dxg4 43.Te7 h5 44.Rf2 h4 45.Fxd6 Dd4+ 46.Te3 Df6+ 47.Cf3 Dxd6 48.Td3 c4 49.Te3 Fxf3 50.Rxf3 c3 51.Re4 c2 52.Tc3 Dd2 53.Tc4 c1=D 54.Txc1 Dxc1 55.Rf5 De3 56.Rg4 Rg6 57.Rxh4 Rf5 58.h3 Dg5# 0–1

3. Contre le Mephisto Berlin Pro

Psion Chess 2.13 (1800 MHz) – Mephisto Berlin Pro 68020, 1–0, 73 coups. Défense Alekhine.

Celle-ci est la plus instructive des trois, parce que Psion y est d'abord moins bien. Le Berlin Pro est une machine dédiée à 68020, cotée 2315, et elle sort mieux de l'ouverture.

1.e4 Cf6 2.e5 Cd5 3.d4 d6 4.Cf3 g6 5.c4 Cb6 6.Cc3 Fg7 7.Ff4 Cc6 8.h3 Ff5 9.a3 O-O 10.b4 dxe5 : les blancs ont poussé leurs pions à l'aile dame sans rien consolider, et le pion e5 tombe.

a8b7c6d5e4f3g2h1
Position après 10…dxe5, les blancs jouent. Psion a poussé ses pions à l'aile dame sans rien consolider ; le pion e5 tombe et l'évaluation est à −2,10. C'est le moment le plus difficile de la partie.

L'évaluation est à −2,10 : deux pions d'équivalent, contre une machine plus forte. Ce qui suit est la chose la plus utile que Psion fasse dans cette partie — il liquide. 11.dxe5 Dxd1+ 12.Txd1 Tfd8 13.Txd8+ Txd8 14.b5 Cd4 15.Cxd4 Txd4 16.Fe3 Fxe5 17.Fxd4 Fxd4 18.Cd5 Cxd5 19.cxd5 : les dames, deux paires de tours et deux cavaliers quittent l'échiquier en neuf coups. Il reste une finale de fous et de pions, matériellement équilibrée, où l'avantage positionnel noir ne vaut plus grand-chose.

Au trentième coup, l'évaluation est à zéro. Psion a effacé son retard en simplifiant.

Puis vient une manœuvre de quarante coups. Le roi blanc entre dans la position — d2, d3, d4, c5, d6 — la tour va et vient sur la septième rangée, et le Berlin Pro épuise peu à peu ses coups utiles. Au passage, 24.bxc6 est une prise en passant, ce qui n'est pas si courant chez les programmes de cette génération. 48...d4 est le relâchement qui donne la partie.

a8b7c6d5e4f3g2h1
Position après 52…Rg7, les blancs jouent. Cinquante coups de finale plus tard, le roi blanc est entré en c5, la tour tient la cinquième rangée et le pion a va partir. Psion joue 53.Tb5, premier choix de Stockfish.

Au cinquante-troisième coup, Psion joue 53.Tb5 — le premier choix de Stockfish 16 à profondeur 22, à +4,83. Ensuite tout s'enchaîne : 53...h5 54.gxh5 g4 55.hxg4 Rh6 56.a5 d3 57.Fxd3, et le pion a court. 60.a6 Fc4 61.a7 Fxb5 62.a8=D Fxd3+ 63.Rxd3 Rxg4 64.h6 Rxf5 65.h7, une deuxième dame à 72.h8=D+, et mat au coup suivant.

a8b7c6d5e4f3g2h1
73.Dxh6# — deux dames nées des pions a et h finissent le travail ; le roi noir est mat en h3.

Soixante-treize coups, dont cinquante de finale, sans une faute qui coûte. Ce n'est pas brillant, c'est de l'endurance — et c'est précisément ce que l'accélération achète.

1.e4 Cf6 2.e5 Cd5 3.d4 d6 4.Cf3 g6 5.c4 Cb6 6.Cc3 Fg7 7.Ff4 Cc6 8.h3 Ff5 9.a3 O-O 10.b4 dxe5 11.dxe5 Dxd1+ 12.Txd1 Tfd8 13.Txd8+ Txd8 14.b5 Cd4 15.Cxd4 Txd4 16.Fe3 Fxe5 17.Fxd4 Fxd4 18.Cd5 Cxd5 19.cxd5 Fe4 20.d6 exd6 21.f3 Fd5 22.Fd3 Fb2 23.a4 c5 24.bxc6 bxc6 25.Rd2 Fa2 26.Te1 Fe5 27.g4 c5 28.Tf1 d5 29.f4 Fd6 30.f5 c4 31.Fc2 Rg7 32.Ta1 c3+ 33.Rd3 Fc4+ 34.Rd4 Fe7 35.Tb1 Ff6+ 36.Rc5 g5 37.Tb7 a6 38.Tc7 Fe5 39.Te7 Rf6 40.Tb7 h6 41.Td7 Rg7 42.Te7 Ff6 43.Tc7 Rf8 44.Tc8+ Re7 45.Tc6 a5 46.Tc7+ Rf8 47.Rd6 Fa2 48.Fd3 d4 49.Fc2 Rg7 50.Rc5 Rg8 51.Ta7 Rh7 52.Txa5 Rg7 53.Tb5 h5 54.gxh5 g4 55.hxg4 Rh6 56.a5 d3 57.Fxd3 Fe7+ 58.Rd4 Ff6+ 59.Re4 Rg5 60.a6 Fc4 61.a7 Fxb5 62.a8=D Fxd3+ 63.Rxd3 Rxg4 64.h6 Rxf5 65.h7 Fg7 66.Dg8 Ff6 67.Dxf7 Rg5 68.Re4 c2 69.Dg8+ Rh4 70.Rf5 Rh3 71.Rxf6 c1=D 72.h8=D+ Dh6+ 73.Dxh6# 1–0

Ce que ça dit du programme

À 2157, le Psion 2.13 accéléré se situe autour du niveau d'un Mephisto RISC II ou d'un Saitek Sparc, soit des machines de 1992-1993. Un programme de 1987 poussé cent douze fois au-delà de son matériel d'origine rattrape donc environ six ans de progrès — et s'arrête là, alors qu'il reste de la marge d'horloge.

C'est la conclusion la moins spectaculaire et la plus solide de cette mesure : la vitesse achète de la profondeur, la profondeur achète de l'endurance, et l'endurance s'épuise. Ce qui sépare Psion 2.13 des programmes de la fin des années 1990 n'est pas une question de mégahertz.

  • Mesures : gauntlets de classement du laboratoire, 283 parties à 16 MHz et 173 à 1800 MHz, cadence 60 coups en 15 minutes, livre d'ouvertures Perfect 2023 limité à 10 coups.
  • Cotes : classement du site, ajustement Ordo sur l'ensemble des parties du laboratoire.
  • Analyses des parties : Stockfish 16, profondeur 22 pour les positions citées.
  • Émulation : QEMU avec -icount, étalonnage du 80286 en cycles par instruction mesuré sur le pilote 286 de MAME.