Super Diep
Vincent Diepeveen
In het WK 2003 speelde Diep voor het eerst met een supercomputer. Vincents bevindingen.
Eigenlijk begon het WK 2003 voor Diep al eind mei 2002. Dus voor het WK 2002. Ondergetekende meende weer eens tijd te moeten verspelen om snellere hardware te regelen. Tenslotte speelde Diep niet zo heel slecht en met een goed boek van Arturo Ochoa (Venezuela), het ict2 toernooi net achter de rug, was de tijd rijp om eens ’toe te slaan’. Snelle hardware is erg duur, dus lastig te lenen voor een WK.
In September 1998 was ik voor het open hardware WK in 1999 ook stevig op zoek geweest naar hardware. Maar liefst 6 maanden intensief rondgekeken naar hardware voor het WK juli 1999. Uiteindelijk bood mijn universiteit aan een 2 processor machine 300Mhz Sun, “Traag, maar met heel veel RAM”. Thuis had ik toen een 450Mhz PII, vet sneller als dat Sun systeem.
Kortom, eind mei 2002 plande ik om niet meer zo veel tijd te verspelen aan hardware en gewoon maar 1 dag hier en daar te informeren. De reden dat het lastig is om hardware te krijgen is dat state of the art hardware erg duur is. Een 4 processor opteron/xeon is al snel 20000 euro. Een 8 processor 150000 euro, een 16 processor shared bus alpha 21264 was tot voor kort 10 miljoen dollar. Dus om dat even onder je arm mee te nemen naar een WK, daar heeft geen bedrijf of overheid zin aan zonder goede opgaaf van redenen. Kortom je schrijft dat je wel kans ziet op de WK titel met stevige hardware.
Een mailtje en een telefoontje
Op een zonnige zondag dus op google.nl en altavista.com fiks zitten rondspeuren naar machines in Nederland. Ik vond er 1. Hij stond op www.top500.org. Naam: TERAS. Grootste supercomputer in Europa: 1024 processor SGI R14000 waarvan grootste ‘partitie’ 512 processors die tegelijk gebruikt konden worden volgens top500.org.
Hierboven ziet u de supercomputer in kwestie: TERAS, eigendom van SARA te Amsterdam.
Dus maar even een mailtje geschreven. De ochtend erop, 10 uur ’s ochtends al antwoord van Patrick Aerts (directeur NWO/NCF). “We staan niet bij voorbaat al afwijzend tegenover je aanvraag.”
Aantal uur later. De telefoon ging, met Jaap v/d Herik aan de lijn. “Hallo Vincent, ik hoorde van Patrick Aerts dat je graag op die machine wilde lopen. Da’s waar ook, ik zit ook in die NCF commissie!” Of ik even naar SGI wilde toegaan om te laten zien dat Diep op die hardware kon lopen. Verder zagen alle organisaties het wel zitten mocht ik wereldkampioen worden.
Voor het WK 2002 vroeg ik 128 processors aan. Na veel onderhandelen van de kant van Jaap begreep ik dat Diep er misschien 60 kon krijgen voor WK juli 2002. Edoch, ik was totaal in het ongewisse overal van. Jaap v/d Herik nam me gelukkig veel werk uit handen. Bij SGI liep Diep na 2 middagjes, tot grote verbazing van de heren aldaar, prima op 4 processor SGI machine.
Ik leerde aldaar dat de processors in die supercomputer op 500Mhz liepen. Dat is nogal frappant, want in mijn PC’tje zaten in 2002 al 1.6Ghz MP processors en dat waren toen nog niet de snelste zelfs. Momenteel is dat 2.2ghz opteron. Het is nogal verbazingwekkend dat de snelste computer in Nederland dus beschikt over processors die factor 3+ trager zijn als processors in mijn PC’tje.
Testen op internet
Al die tijd voor het WK heb ik nauwelijks kunnen testen natuurlijk. Om 1 test te doen moest ik helemaal naar SGI toe en dat was dan altijd steevast op een andere machine als de TERAS. Drie dagen voor het WK kreeg ik eindelijk toestemming om op het WK die computer te gebruiken. Let wel er is dus een maand verloren gegaan aan wat ik gok bureaucratie. Direct kreeg ik toegang tot de TERAS supercomputer en kon testen.
Dat testen doe je over het internet. Net zoals ik dit tik in een window dat ‘word’ heet, tik je op je eigen machine in een ander windowtje dat heet ‘internet connectie naar de supercomputer’ de commando’s rechtstreeks in via het internet naar de supercomputer.
De machine zelf staat in Amsterdam bij het nationaal rekencentrum. Zie sara.nl voor details. De foto’s aldaar, aan het begin van dit artikel zag u er een, en links is er nog eentje, terwijl linksonder een foto van onderaf zichtbaar is, geven niet echt goed een voorstelling van hoe groots de machine is in werkelijkheid.
Toen ik bij SGI was, dus voor de toestemming een feit was, had SGI speciaal voor Diep het even uitgeprobeerd op verschillende aantallen cpu’s. 10 processors was ik zelf bij. Later is er ook een batchtest (automatische test waarbij je dus niets intypt op het toetsenbord; het programma start zelf en gaat draaien en poept na afloop een printje van de resultaten) uitgevoerd. Zo zijn er een paar tests op 32 en 60 processors gedaan. Ik zag wel dat het even duurde voor Diep grote snelheden bereikte op die machine, maar het zag er verder prima uit.
Toen ik dus zelf drie dagen tevoren mocht testen, liep het echter van geen kant op die machine. Waarom en hoe daar had ik op dat moment weinig kaas van gegeten. In drie dagen tijd los je dat niet op natuurlijk. Op het WK2002 ging het dan ook faliekant verkeerd. Additioneel probleem was dat er weer iets kapot was aan de machine, juli is namelijk de maand waarin de machines gebruikelijk worden geupgrade omdat alle wetenschappers dan toch met vakantie zijn. Geen enkele harddisk werkte goed. Dus compileren van Diep, wat anders een paar secondes is, dat kostte daar 45-50 minuten. Dat houdt natuurlijk de zaak ook enorm op!
Drie partijen heb ik op het WK 2002 gespeeld op die machine. Wat met name een probleem was, was snel een groot aantal nodes per seconde te behalen.
Het WK was nog niet voorbij of Jaap verraste me positief en zei: “Kom, voor het WK 2003 gaan we dit beter doen en een officiële aanvraag indienen”. Ondergetekende heeft één dag goed uitgeslapen na het WK 2002. Toen direct aan de slag. In de maand juli tot en met midden augustus heeft ondergetekende dagen van 12-14 uur gemaakt om Diep te herschrijven naar iets wat goed zou lopen op die machine. In de tussentijd was er met dank aan universiteit Maastricht een keurige aanvraag gedaan voor systeemtijd.
Reële snelheid en/of feitelijke traagheid
Bij dat herschrijven is natuurlijk technische informatie erg belangrijk. Het belangrijkste verschil tussen een computer bij mij thuis (dual AMD K7) en de supercomputer is dat alles NUMA is op zo’n supercomputer. Dat staat voor ‘Non Uniform Memory Access’. Het is heel simpel om uit te leggen wat dit inhoudt. Dit houdt in dat het ophalen van data op andere processors als deze, aanzienlijk trager is. Voor het computerschaak, waar elke tiende procent telt bij optimalisaties, is het handig om natuurlijk exact te weten hoe traag het dan is.
Daar het ontzettend relevant is voor het vervolg van het artikel en ook voor de voorbereidingen van het WK 2003, zal ik quoten welk antwoord SGI mij gaf. Dat antwoord was 460 nanosecondes. Of te wel 0.000 000 460 seconde om 1 stelling op te halen aan de andere kant van de machine (0-128 bytes). Wetende dat de processor instructies kan uitvoeren met een snelheid van 500Mhz = 2 nanoseconde per cycle, is het natuurlijk enorm relevant om te weten dat geheugen factor 230 trager is als de processor is.
Echter, op het WK2002 had ik gemerkt dat het wel eens wat trager zou kunnen wezen. Zo vond ik na een week zoeken op een homepage van SGI dat op de Origin2000, de vorige generatie machine (TERAS = origin3800), de random access latency ‘gemiddeld’ 1.1 microseconde zou zijn bij 256 processors.
Voor het WK 2003 wilde ik niet weer met heel veel gebruikers dezelfde cpu’s gebruiken maar als enige gebruiker een hele ‘partitie’. Kortom 512 processors, want een andere reden dat het mis liep op het WK 2002 is dat op dezelfde partitie een ander programma op 300 processors alle bandbreedte van Diep wegzoog.
Bij het programmeren ging ik dus uit van 1.1 microseconde latency. Testen zou gebeuren in paderborn 2003. Al heel vroeg wist Jaap mij te vermelden dat testen in Paderborn helaas zou komen te vervallen. Enfijn, dat was ook logisch want er zou een oorlog aan komen en het weer voorspellen heeft dan tenslotte prioriteit.
Eind augustus/begin september 2002 waren er überhaupt grotere problemen. Ik was grof van de machine afgeknikkerd en kon niet meer testen. Dat testen was overigens maximaal al 16 processors. Niet echt hetzelfde als 512 processors.
In de tussentijd stond ik stomverbaasd dat er zoveel organisaties hun licht moesten laten schijnen over onze aanvraag voor systeemtijd van Diep. Elke nieuwe organisatie/wetenschapper diende natuurlijk weer een nieuw verhaal te horen waarom Diep op die machine diende te lopen.
Bureaucratie
Als er begin jaren 80 zo’n enorm bureaucratische opzet gebruikt werd om de schaarse systeemtijd te verdelen onder de vele wetenschappers, dat kan ik me voorstellen. In 2003 waar een 2080 processor IBM machine 2.0Ghz opteron (die kort in de top10 van top500.org stond, iets wat al die organisaties belangrijk vinden) maar 10 miljoen dollar kost, dus stevig goedkoper als al de bureaucratie bij elkaar, ligt dat anders.
Ondergetekende is geen wetenschapper die 90% van zijn tijd kan verspillen aan trage bureaucratie, in welke vorm het zich dan ook manifesteert. Rond 25 Februari 2003 kreeg ik, terwijl paderborn 2003 al bijna ten einde was, te horen dat ik na een half jaar programmeren, eindelijk budget kreeg toegewezen.
In totaal kreeg Diep WK2003 een budget van 90000 cpu node uur. Waarbij 1 node = 1 cpu. Kortom 512 processors keer 2 uur is bijvoorbeeld 1024 cpu node uur. Ruim voldoende zou u denken om het WK 2003 op te spelen niet waar? Toen dat budget eindelijk op account van Diep stond, kon ik natuurlijk eindelijk eens een test draaien op veel processors. Diep getest op 130 processors op de P7 partitie van in totaal 512 processors.
Waar Diep prima werkte op 32 processors van een andere partitie, daar liep Diep op 130 processors van geen kant. Waar kon dat aan liggen? Welnu, in de wetenschappelijke wereld weet niemand iets van supercomputers af, ze doen allemaal maar wat, dus ik moest maar zelf raden.
Mijn gok was dat de latency van 460 ns die SGI me gaf niet helemaal klopte. Dus nogmaals maar eens emailen naar SGI: “Hoeveel tijd kost het nu?” Antwoord erop, aan de hand van een berekening dit keer: “460 nanosecondes”.
Toen ging ik maar eens met het systeembeheer praten (SARA). Zoals ik al vermoedde, de TERAS machine was nooit getest op dat soort dingen.
Zelf de latency meten
Nu ben je als schaakprogrammeur tenslotte in eerste instantie programmeur. Dus wat doe je dan? Juist je schrijft een apart programma om maar eens zelf de latency te meten. Bij 130 cpu’s was de uitkomst 2.2 microsecondes en toen ik dezelfde test nog een keer draaide terwijl andere gebruikers wat andere monster programma’s op de machine draaiden, was het 5 microsecondes bij 130 processors.
Pas op het WK 2003 kon ik echter deze test draaien op 460 cpu’s. Uitkomst 5.8 microsecondes.
In het voorjaar 2003 kwam ik in contact met een persoon, die zelf clusters bouwt als beroep. Die gokte dat de TERAS zo rond de 5-7 microsecondes latency zat bij 500 processors (12 processors raak je kwijt aan zaken als i/o etc). De supercomputer wordt gebruikt door velen tegelijk. De meeste jobs zouden beter op de PC kunnen draaien ( < 32 processor jobs en dat bij trage 500Mhz cpu’s; het gros veruit rond de 4-8 processors die op die bak zitten omdat het interessant is daarmee te spelen). Al die jobs zitten een test van Diep wel in de weg.
Dus 1 run van 130 cpu’s met Diep draaien gedurende maar 1 uurtje, dat kon soms 3 weken duren voor het werd uitgevoerd. Vanaf het voorjaar tot einde zomer waren zulke tests extreem zeldzaam omdat er een paar grote challenge projecten liepen. Vanzelfsprekend een goede zaak om die te draaien. Helaas betekent het ook dat niemand anders even een test van een uurtje kan doen met 130+ processors.
Dus in de zomer 2003 was ik, wegens niet ter zake deskundige informatie van SGI gedwongen om Diep te herschrijven op die latency van 5-7 us. Ter vergelijking een computer 3x goedkoper en 5x meer processors, zoals de nieuwe clusters, die hebben ook een 5 microseconde latency.
De dure supercomputer in Nederland is als het gaat om grote jobs dus niet beter als die spotgoedkope clusters waar er bendes van in de USA staan. Grote teleurstelling dus voor mij. Dus maar weer hard aan de slag. Maar ja, je wilt wat je schrijft toch wel testen? Eens in de paar weken een 130 processor test doen was wel mogelijk, maar 500 processors, vergeet het maar, laat staan dat ik Diep kon testen door er een klein oefenpartijtje tegen te spelen.
In september 2003 werd een batchjob van Diep eindelijk uitgevoerd. Diep op 500 processors in de openings positie gedurende 1 uur. Met dank aan het systeembeheer, anders was het nog steeds niet uitgevoerd. Hoewel Diep daar na een minuut of 15 een snelheid van 5 miljoen nodes per seconde haalde, was ik niet erg tevreden met het resultaat. Als computerschaker realiseer je je maar al te goed dat je op toernooi nivo niet 15 minuten per zet hebt.
Let wel, op een single cpu 500Mhz R14000 behaalt Diep een snelheid van 20000 stellingen per seconde. 5 miljoen nodes per seconde halen op 500 processors is dus een scaling van 50% precies. Niet bepaald slecht in academische kringen.
Echter, bij 130 processors was de snelheid binnen 10 secondes al boven het miljoen en na een minuut al iets van 2.2 miljoen nodes per seconde. Ter vergelijking, daarmee was dus het resultaat op 500 processors nog steeds goed, maar niet zo heel erg goed. Ik tastte in het duister waarom.
De eerste interactieve test
Natuurlijk had ik graag nog echt met de hand een partijtje gespeeld op de machine op een groot aantal processors. Smeken om te testen (interactief, dus met je eigen toetsenbord mag je commando’s intypen in Diep), het is allemaal vergeefs geweest. De eerste interactieve test zou zijn één dag voor het WK.
Links Vincent Diepeveen, eenmaal aangekomen op het WK, zittend achter zijn futuristisch schaakbord in de donkere grot van Graz.
Nu vragen de experts-programmeurs zich natuurlijk af waarom ik me in plaats van in het duister te tasten niet gewoon gemeten heb wat het probleem was op dezelfde manier als waarop dat bij de latency is gedaan. Om efficiëntie te meten op zulke machines heb je een timer nodig natuurlijk. Het heeft me enige tijd gekost om erachter te komen dat timers op de SGI supercomputer centraal worden bijgehouden. Dus als 500 processors regelmatig de tijd opvragen dat zij effectief gerekend hebben, dan raakt de computer verstopt. Stelt u zich voor een rij van 500 mensen voor één loket waar één trage ambtenaar u helpt. De ambtenaar zit dan snel overspannen thuis en niemand wordt meer geholpen.
Dus meten op zo’n supercomputer op deze manier is niet mogelijk. Dat kan alleen met een timer die cpu lokaal is en die heeft de machine niet. Herhaalde verzoeken aan SGI of er zo’n timer bestaat zijn ook nooit beantwoordt door de helpdesk aldaar. Ook het systeembeheer van SARA, die me overigens prima hielpen waar ze konden, tastte in het duister.
Diep haalde die 2.2 miljoen nodes per seconde op 130 processors dus ook dan pas toen ik zelfs dit detail had wegbezuinigd. Zelfs maar weinig schaakprogrammeurs kunnen zich voorstellen wat voor handicaps het met zich meebrengt als je zo in het duister tast, zonder te kunnen testen.
Geen internet in Graz
Al maanden tevoren had ik de organisatie in Graz gevraagd of ik in elk geval 1 dag tevoren al internet zou kunnen gebruiken. Te zelfder tijd kreeg ik te horen dat het WK aan Diep 80000 uur zou gaan kosten. Dus voor de paar batchjob tests die ik nog kon doen moest ik oppassen, want er stond al een paar duizend uur op de teller. Tenslotte had ik maar 90000 uur in totaal gekregen en na het WK wilde ik natuurlijk narekenen hoe groot de speedup van Diep was op de cluster.
Aangekomen in Graz, bleek natuurlijk dat ze internet in die grot, Diep in de berg, nog moesten aanleggen. De amateurs.
Waar ik me erg zorgen over maakte was dat het maar liefst 3 uur kostte om Diep op te starten. Dit kwam met name door eindspeldatabases. Een groot probleem op supercomputers is dat ze niet zoveel file handles kunnen hebben.
Op de players meeting vooraf aan het WK wilde Stefan Meyer Kahlen van Shredder weten of hij kon eisen dat ik op die machine zou spelen. Hij kon zich namelijk niet voorstellen dat Diep zonder te crashen op die machine zou kunnen draaien en wilde er dus zeker van zijn dat ik op de supercomputer tegen hem zou spelen in plaats van op een prima PC. Stefan Meyer Kahlen had van het hele gezelschap, al enige jaren gepoogd hebbende zijn Shredder over het netwerk aan de praat te krijgen, wel enig recht van spreken.
The final showdown
In de eerste partij kon ik een glimlach niet onderdrukken toen Diep direct uit boek al snel prima snelheden bereikte. Uit de logfile van Diep de eerste zet:
12 a2-a3 (1:50:42,1:51:57) 0.00 14 3073529516 07:40 5907449 2721857449 0 (500) 13 (358475,6161057) 0.439 a2-a3 Be6-d7 Rf1-b1 h7-h6 Bg5-f4 Nf6-h5 Bf4-e5 a7-a5 Qc2-b3 f7-f6 Be5-g3 Nh5xg3 Ne2xg3
Dus op 500 processors bereikte Diep een snelheid van 5.9 miljoen nodes per seconde na 7 minuut 40. In totaal voor deze zet zijn doorzocht 3 miljard nodes en Diep had ply 13 afgerond en was net begonnen aan ply 14 toen a3 is gespeeld. De hoofdvariant is dus van 13 ply zoekdiepte. De score 0.439 pion is vanuit Diep gerekend positief.
Stefan kreeg echter toch nog gelijk toen Diep crashte. Waar dit aan lag had ik gelijk door, namelijk eindspeldatabases. Dus die heb ik gelijk uitgezet en ben geherstart met 120 processors. Waarom niet 500 processors? Welnu dat zou een uur kosten van mijn eigen denktijd en dan zou ik dus de partij verloren hebben op klok. 120 processors start sneller. Dat crashen gebeurde overigens toen Diep al totaal gewonnen stond. Omdat de tijd op de klok aanzienlijk minder was toen, diende natuurlijk sneller gespeeld te worden.
Te lage zoekdieptes
Daarbij was ik geschokt dat in het eindspel met name de zoekdieptes erg klein waren. Wat was het probleem alhier? Mijn sympathieke tegenstander Thomas Mayer (Quark) kon me natuurlijk het antwoord niet op geven. Wel was geluk bij ongeluk het feit dat Diep ondertussen een stuk voor stond en dus de partij ondanks de matige zoekdieptes en uiterst knullige zetten alsnog won.
Het systeembeheer, dat vooraf had aangekondigd dat in geval van problemen ze na 5 uur ’s middags geen service meer verleenden, laat staan in het weekend, was toch actief in het weekend en dacht mee met Diep. Ze vermoedden dat de machine te zwaar belast werd. 500 processors tegelijk gebruiken van een partitie waar er maar maximaal 500 toegankelijk zijn voor gebruikers, dat was veel te veel. Misschien was 460 processors een beter idee, zo’n supercomputer is tenslotte een delicate machine met allerlei problemen en die kon vast geen 500 processors tegelijk actief trekken.
De ronde erop tegen Shredder (links in beeld). Dit keer zonder eindspeldatabases gestart en met 460 processors, wat ik de rest van het toernooi ook zou blijven gebruiken.
In de opening speelde Diep aanvankelijk een stuk beter als Shredder die in mijn ogen een paar positionele fouten maakte en Stefan verklaarde dat hij positief verrast was over hoe goed Diep schaalde op die machine en ook positief verrast was over de zoekdieptes die Diep behaalde. Op het moment dat ik meende dat Diep een paar vreselijke krukkezetten begon waar te nemen aan het einde van Diep’s hoofdvarianten, sloeg ineens de pech toe. De snelheid van rond de 5-7 miljoen nodes per seconde begon af te nemen en met name werden de zoekdieptes kleiner.
Echter, naarmate de partij vorderde werd dit erger. De krukkezetten die eerst achterin in de hoofdvariant stonden kwamen op het bord en Diep stond verloren. Shredder sloeg natuurlijk genadeloos toe en won.
Als je zulke problemen hebt met zoekdieptes zit je natuurlijk niet stil. Kort voor ronde drie heb ik dus iets in de splitstrategie veranderd van Diep. Doordat de starttijd van Diep 3000 secondes was op 460 processors, had ik natuurlijk geen tijd meer om dat te testen. Dat werd in de derde partij tegen Falcon wel gedaan…
Het symptoom en de oorzaak
Enfin, dat liep dus uit op een ramp. De originele splitcode was toch prima en de zoekdieptes van Diep waren vreselijk die partij. Ook het aantal nodes per seconde was vreselijk af en toe en tenslotte gaat het er niet om zoals in de wetenschap om de gemiddelde zoekdiepte winst, maar om de worst case zoekdiepte winst. Die was duidelijk zwaar negatief in die partij. Tot overmaat van ramp wist Diep met een pion meer de partij hierdoor ook niet meer te winnen. Wel zag ik het symptoom dat optrad wat de matige zoekdieptes verklaarde.
Zonder al te technisch te worden, het ‘uptime’ commando in IRIX geeft speciale informatie omtrent hoeveel cpu’s op dat moment actief rekenen. Dat was regelmatig minder als 400 zelfs, terwijl Diep op 460 processors rekende!!!!
Waar kon dit aan liggen?
In de hotelkamer, mijn computer vanuit de toernooi zaal weer meegesjouwd, de nacht doorwerkende in de dagen erop, kwam ik erachter dat dit alleen kon liggen aan het feit dat er CPU’s op elkaar moesten wachten af en toe in Diep (locken heet dat). Als een processor op zo’n SGI supercomputer iets te lang op een andere processor moet wachten, dan is dat niet de in juli 2003 aangenomen latency van 5-7 microsecondes die elke wachtpoging kost, maar 10+ millisecondes (runqueue latency).
Nogal heftig probleem dus.
Hoe had ik zonder te testen kunnen weten dat Diep tegen dit probleem zou oplopen bij grote aantallen processors wegens de vreselijk slechte latency die je bij zoveel processors hebt, in tegenstelling tot wat SGI beweert?
Dat probleem los je niet zo maar op ook, parallel programmeren kost maanden. Toch kreeg ik het voor elkaar door elke dag om 3 uur ’s ochtends op te staan, om het probleem stevig te reduceren, net voor ronde 8. Rondes 8 tot en met 11 speelde Diep dan ook voortreffelijk op deze machine.
In januari 2004 is overigens het andere probleem aangepakt. Ik vermoed dat het opgelost is nu, maar controleren kan ik het niet. Er is zeker een run van zeker 200 processors keer 2 uur nodig om het te verifieren, want alleen bij zulke aantallen processors is testen zinvol als je de ‘productierun’ op 460 doet.
De rest van het WK
Jammer is dat Diep een nogal voor de hand liggende winststelling tegen Fritz in ronde 7 verknalde hierdoor. Zelfs de PC vindt binnen 3 minuten de beste zet daar en de supercomputer vanaf ronde 8 en verder vindt het binnen 30 secondes zelfs. De nul in ronde 8 tegen Brutus was lastig te voorkomen, daar het een boekfout betrof. De rest van de partij zag Diep allerlei winsten voor Brutus, die Brutus niet vond noch uitvoerde. Brutus wist de partij stevig te rekken en pas in het verre eindspel te winnen.
Links het team Brutus in beeld.
Kenmerkend met behulp van eindspeldatabases op het einde nog, die Diep natuurlijk niet gebruiken kon, want zoveel file handles dat kan een supercomputer tenslotte niet aan (460 cpu’s * 1000 files = 460000 file handles). Wel zielig, echter de partij was ruim verloren daarvoor. In de partij tegen Brutus piekte Diep op 10 miljoen nodes per seconde in het eindspel.
Ronde 9 tegen Junior bleek weer eens dat bugs in de evaluatie belangrijker zijn als zoekdiepte. Ondanks het feit dat Junior er links en rechts uitgezocht werd door Diep, trad er, ondertussen in ruim gewonnen stelling voor Diep, een of andere bug op in de evaluatie waardoor Diep de stelling open gooide en alsnog verloor.
Dat soort bugs eruit halen, daar was ik natuurlijk niet aan toegekomen door al de problemen en zenuwtoestanden bij die supercomputer. Dit was overigens tijdens het NK 2002 al voorspeld door Frans Morsch, die dus ruim gelijk kreeg. In ronde 10 en 11 mocht Diep nog twee amateurs aan het spit rijgen.
Erg grappig was de partij Diep – Jonny. De overigens uiterst sympathieke programmeur van Jonny, Johannes Zwanzger (FIDE: 2340 zelf) vroeg zich hardop af waarom Diep in een dame + loper versus dame + paard eindspel sterk de voorkeur gaf aan de loper, omdat al wereldkampioenen als Capablanca hadden gezegd dat dame + paard in principe veel sterker met elkaar samenwerkt als dame + loper. Mijn antwoord daarop was glashard: “Geloof al die heuristische onzin van die wereldkampioenen toch niet, die gasten schreeuwen maar wat in de ruimte zonder wetenschappelijke onderbouwing; een loper is bijna altijd sterker als een paard, heuristieken kun je niet zo maar in je programma inbouwen zonder allerlei randcondities!” Al 5 zetten later kwam Johannes tot dezelfde conclusie. Jonny had daar nog 15 zetten meer nodig. Diep had toen al een matscore op zijn scherm staan overigens. Overigens, Diep heeft heel veel loper- en paardkennis in huis, maar het betreft daar schaakkennis, geen schaakheuristieken.
De laatste ronde speelde Diep tegen Nexus. Zoals vaak tegen nieuwkomers had ik bij aanvang van het toernooi een paar partijtjes tegen Nexus gesnelschaakt. Erg opvallend was dat het zoals zoveel Duitse software veel heuristieken ten toon spreide die je verder alleen in andere al volledig uitgeëvolueerde en volwassen programma’s ziet. In dit geval timmerde Nexus continue de partij open zoals ik eigenlijk alleen Crafty dat zie doen. Nu is het zeker dat de heren zelf iets geprogrammeerd hebben, want Nexus heeft keurig zijn eigen interface. Velen kunnen daar een voorbeeld aan nemen!
De commoties op het WK
Zo ontstond er later commotie over Jonny versus Fritz. Volkomen onterecht overigens. Jonny kent zetherhaling niet, maar Jonny speelde in Fritz interface en die kent het wel, maar Fritz is Jonny niet. Dus terecht besloot de wedstrijdleider om door te spelen. Overigens, ook in Diep – Zugzwang is er in het verleden doorgespeeld en er zijn nog meer voorbeelden. Nu ook dus. Chessbase zelf klaagde ook totaal niet, ondanks dat herhaaldelijk aan Chessbase gevraagd is of zij wilden protesteren tegen deze gang van zaken. Die wilden natuurlijk maar wat graag een playoff tegen Shredder. Een dag extra publiciteit! Protesten kwamen pas nadat Fritz die playoff verloor.
Shredder, links in beeld, won die playoff en is dus de terechte wereldkampioen. Geen discussie mogelijk nu dus. Gek genoeg is er veel commotie toen ontstaan over Shredder – Jonny, ik vind het kwalijk dat Jonny pas ruim na de playoff deze protesten stevig aanwakkerde met hele verhalen over Shredder – Jonny op de homepage. Volledig onterecht.
In toernooien zou men gewoon met zijn eigen interface moeten spelen en met zijn eigen eindspeldatabases en met zijn eigen boek. Dan is al dit gezeur snel afgelopen. Ik irriteer mij er in toenemende mate aan dat veel programma’s gebruik maken van boeken in commerciële interfaces. Daar wordt dan geprofiteerd van het spelen van partijen waarin het boek wordt verbeterd door learning van de interface. In het maken van die superieure learning van die commerciele interfaces daar zit meer manjaar in als in zo’n engine in totaal dan, terwijl het heel duidelijk een invloed heeft op het resultaat en mensen met eigen boekcode sterk benadeelt. Dat is wel enigszins triest, zeker ook omdat 90% van alle amateurs niet eens weten hoe moeilijk het is om goede booklearning te schrijven.
Desalniettemin een terechte wereldkampioen. Shredder was duidelijk superieur aan andere engines, niet qua search of zoekdiepte, maar met name door zijn evaluatie en het prima testen ervan. Het is hier waar Diep tekort schoot. Niet genoeg getest. Met testen haal je tenslotte die bugs zo uit je evaluatie.
De effectiviteit van tijdsinvestering
Snelle hardware is nooit een nadeel, maar het voordeel ervan neemt af naarmate de engines dieper beginnen te rekenen. Als er nog weinig tijd op de klok staat, is het nog zo dat snelle hardware fijn is om te hebben. Als ik echter na ga bij Diep wat nu het probleem was de laatste zoveel partijen dat Diep verloren heeft in toernooien, dan is hardware nooit de reden geweest.
Hoewel Diep in Graz 2003 net als in Maastricht 2002 op een gedeelde 5e plek belandde, is het zo dat ik toch voel dat Diep van zomer 2002 tot december 2003 een achterstand heeft opgelopen ten opzichte van de overige engines.
Bij de overheid gaat men ervan uit dat je alle tijd van de wereld hebt om dingen als bureaucratie af te handelen en dat je dat graag wilt ook, omdat je dan uurtjes kunt declareren dat je bezig bent geweest. Ik word echter niet betaald om Diep te ontwikkelen op een supercomputer. Dus elke seconde dat ik kwijt ben aan andere dingen zoals de waarheid zien uit te vogelen over de latency etcetera, is verspeelde tijd.
Ondanks het feit dat Universiteit Maastricht mij dus enorme bureaucratie uit handen heeft genomen, ben ik wel met de gevolgen geconfronteerd. Zo kan ik niet zo best rekenen bijvoorbeeld, maar na het WK stond de teller op 91300 uur. Dus voor het WK had ik 4500 uur opgemaakt. Het WK zou 80000 uur tellen. De bureaucratie concludeert dan dat Diep dus 91300 uur heeft verbruikt van de 90000 die Diep had. Op mijn vraag waarom er niet 84500 op de teller staat in plaats van 91300, krijg ik momenteel als antwoord: “Oh dan vraag je gewoon toch nog wat tijd op die machine aan?”
Ik heb geen zin om weer 1200 pagina’s te schrijven om een paar duizend uur systeemtijd te krijgen op processors van 500Mhz die dus nu ongeveer factor 12 trager zijn (50% van totale systeemtijd gaat tenslotte verloren aan latency naar shared memory) als de hedendaagse processors. Als je dus niet geniaal loopt op zo’n supercomputer, ben je altijd trager. Je begint namelijk met een factor 12 trager als je PC concurrenten en dan hebben we het nog niet eens over het verschil in plydiepte.
Verder is het zo dat je zo’n supercomputer alleen krijgt voor een WK. Niet voor al die andere toernooien. Ik weet overigens zeker dat het goedkoper voor de overheid is om al die organisaties en bureaucratische instanties eruit te knikkeren en op een paar universiteiten een 5000 processor cluster neer te zetten voor 10 miljoen dollar en op de overige Universiteiten Quad opterons aan te schaffen voor pak hem beet 14000 euro. Zo doen ze dat overigens ook in de Verenigde Staten en Japan.
Vandaar dat in heel Europa maar één systeem groter is als de TERAS supercomputer in Amsterdam, want in heel Europa werkt het op deze bureaucratische manier. Japan en de Verenigde staten lopen lichtjaren voor op Europa. In de Verenigde Staten heeft bijna elke zichzelf respecterende universiteit zo’n mega cluster. Veel minder bureaucratie en misinformatie, want er zijn genoeg processors om een ieder van dienst te zijn. Je kunt dan continue testen.
Tegenwerpingen dat dat in de USA nodig is omdat ze ook kernexplosies moeten narekenen, zijn snel te weerleggen. Daar gebruikt de centrale overheid in de USA een ander type machine voor. Zo heeft men in de USA onlangs een supercomputer van 65000+ processors besteld hiervoor, dat kost dan wel een behoorlijke duit.
Het is natuurlijk zielig dat het Brutus team continue kon testen en nog niet eens Brutus op meer als 8 processors aan de praat heeft gekregen, terwijl ik niet kon testen en na ronde 8 prima liep op 460 processors.
De toekomst
Diep zelf speelt overigens meer dan alleen WK’s en ik bespaar graag op de aanschaf van hardware. Toch is het niet onhandig dat te hebben. Zo denk ik aan het supersnelle tempo van 90 minuten op de CSVN toernooien, waar vanaf zet 30 met nog 30 minuten op de klok je nog altijd steeds minder CPU tijd per zet hebt dan Diep bijvoorbeeld had in het WK 1999 (toen draaide Diep op een quad Xeon 400Mhz bij 3 minuten per zet), dus snelle hardware kan geen kwaad daar.
Vandaar dat ik blij ben dat Palgames uit de Verenigde Arabische Emiraten nu toegezegd heeft dat Diep draaien mag in Paderborn2004 op een 8 processor Xeon van hen. Als zij dan ook graag willen dat Diep op het WK op een machine van hen draait, ongeacht hoeveel een supercomputer sneller is als zo’n 8 procesor Xeon, dan is het logisch dat je consequent bent en op zo’n 8 processor Xeon draait. Om dezelfde reden speelde Shredder overigens op een 2 processor Xeon machine op het WK2003.
Nu Diep dan prima op zo’n supercomputer loopt en prima schaalt en overigens meer dan 100x sneller is ten opzichte van 1 processor van 500Mhz bij 460 processors, spelen er dus andere belangen waarom ik mogelijk nooit meer op zo’n machine draai. Narekenen van partijen kan ik overigens niet, in plaats van 90000-80000+4500 = 5500 over te doen heb ik namelijk van verschillende zijdes nu het advies gekregen om maar weer systeemtijd aan te vragen om na te rekenen wat de speedup is van Diep op de TERAS.
Weer een jaar lang formuliertjes invullen voor de verschillende organisaties en bedelen om systeemtijd bij de overheid en een jaar lang in onzekerheid zitten of je die ook krijgt? Nee bedankt, ik word niet betaald om op zo’n supercomputer de algoritmes werkend te krijgen, ondanks het feit dat ik een goede programmeur ben en dus een willekeurig wetenschappelijk programma 100x beter en sneller aan de praat krijg op zo’n supercomputer als diezelfde wetenschapper (die dus liever formuliertjes invult als programmeert) die ik op die machines heb zien rommelen.
De speedup
Die speedup kan een ieder natuurlijk met twee vingers in de neus ruiken, door gewoon dezelfde Diep versie mee te laten draaien op die partijen. Doordat Diep gelijk die factor 12 kwijt raakt ten opzichte van moderne processors, is het zo dat Diep na ronde 8 gewoon ongeveer 2 ply dieper rekende op die supercomputer dan op mijn dual K7 2.127Ghz (MP2600) en nog heel wat meer in het eindspel. Dat is 2 ply meer als de verwachting van alle commerciële programmeurs die ook over een schat aan parallelle ervaring beschikken.
Dus vanuit wetenschappelijk opzicht was SuperDiep een groot succes, vanuit sportief opzicht een grote mislukking (ik verloor partijen onnodig, zoals tegen Fritz).
In tegenstelling tot allerlei andere parallelle projecten zoals Brutus (die zou volgens Wuellenweber op 100 cpu’s draaien volgens oorspronkelijke planning en dat is ongetwijfeld geprobeerd maar er is geen publieke informatie over te vinden), Zugzwang (geen logfile ooit gepubliceerd), Cilkchess (alweer geen logfiles te verkrijgen, ondanks herhaalde vragen), Deep Blue (in de logfiles valt nergens iets te vinden over of ze überhaupt gemeten hebben hoeveel nodes ze in software rekenden alle getallen die ze noemen zijn zoals in de kleine lettertjes te lezen valt geëxtrapoleerd, wat heel erg fout is) en zelfs kleine projectjes zoals Cray Blitz daar is gewoon met de getallen gefraudeerd (openlijk toegegeven door Hyatt in augustus 2002). Een nieuw project waar hetzelfde mee gebeuren gaat, dat is Chessbrain (geven geen informatie weg over op welke Diepte gerekend wordt, dat valt dan natuurlijk makkelijk na te rekenen met Beowulf op single cpu).
Bij Diep is dat niet het geval. Niks geen mythologisering zoals bij Deep Blue voor zes knudde partijtjes tegen Kasparov (die gooit er echt altijd met de pet naar, terwijl hij toch het klootjesvolk weet te vermaken met gekke bekken en sappige statements op persconferenties).
Ten aanzien van SuperDiep is openheid van bestuur en openheid van resultaten het motto hier! De outputs en het bewijs op papier dat SGI me keihard heeft voorgelogen en zes maanden van mijn leven voor niks heeft laten werken, is daar. Het vertoonde spel was knullig en de enige gemeten speedups die ik na het WK heb kunnen doen voor ze de kraan dichtdraaiden zijn publiekelijk toegankelijk Alsmede alle logfiles en met uitleg erbij van ondergetekende. Emailt u ondergetekende maar: diep@xs4all.nl en ik stuur u een zipfile met alle logfiles.
Overige aspecten van het WK
De overige aspecten in het WK zijn snel samen te vatten. We zaten in een grot met prachtige schaakstukken en borden en prima tafels. Links ziet u een impressie hiervan. Ik zal me onthouden van grove woorden, maar laat ik het heel voorzichtig zo zeggen: aan het einde van het WK begon ik doodziek te worden van die grot en de lucht die erin hing. Het rook daar natuurlijk net zo als in de mergelgrotten in Limburg, waarvan ook bekend is dat het het niet erg bevorderlijk is voor je gezondheid om dat in te ademen. Doordat zo’n grot, zo’n 150 meter in de berg, behoorlijk afgesloten is van de wereld is het zo dat dus ’s avonds het vreselijk warm ook werd in de grot, te benauwd om uit te houden.
Het principe van een GM Wells die prima schaaktechnisch commentaar geeft, dat is geweldig natuurlijk. Echter 10 dagen non-stop met de speakers op 110 decibel in je oren is ook niet alles. Daar komt bij natuurlijk dat de eerste paar dagen Peter ook nog moest ontdekken dat programma’s tactisch heel sterk zijn en strategisch wat minder. Dat ging hem overigens prima af op het einde.
Gelukkig werd de atmosfeer heel wat beter door de humor die Omid David Tabibi ten dag legde. Erg tegenvallend was de prestatie van Sjeng. Of dit de schuld van de engine is, dat is de vraag want het lijkt een engine die sterk in opkomst is. Waar ik dit WK totaal niet mocht klagen over openingsboek (in mijn ogen had Diep samen met Fritz het beste WK boek, jammer alleen dat Diep dus 4x zwart had tegen de commerciële deelnemers; wit is een groot voordeel), daar is het een hard feit dat Sjeng het gros van de partijen zich geconfronteerd zag met stellingen waar de engine helemaal niets mee kon doen. Van die stellingen die op 90 0 tegen amateurs wel werken wegens directe tijdnood (de meeste amateurs bedienen ook nog traag en verliezen van die 90 minuten zo’n 15 minuten per partij minimaal aan bedieningstijd), maar die tegen serieuze tegenstanders op een WK op een niveau van 2 uur voor 60 zetten met snelle hardware al een stuk minder indrukwekkend zijn. Ik had zeker na de laatste uitlatingen van Jeroen Noomen wel meer verwacht. Enfin, misschien bewaart Jeroen zijn kruit voor het ICT4 toernooi, we zullen zien.
Erg indrukwekkend was de openingsvoorbereiding van Alexander Kure (2100). Die had voor Fritz de opening prima voorbereid. Over Brutus is op het WK veel gezegd en gesproken. Zeker is dat Chrilly niet meer voor Chessbase werkt en in zijn privé-tijd verder gaat met Brutus, onder de naam Hydra nu. Op de Universiteit Paderborn staat de hardware waarop Brutus loopt. Een nieuwe openingsboek maker (Erdogan Gunes) staat nu voor de loodzware taak om al voor Paderborn 2004 (11-15 februari 2004) een nieuw boek in elkaar te flansen, terwijl dit normaliter jaren werk kost. Het is gezien de gevoeligheid van de materie misschien handiger een verslag van de hand van Chrilly zelf af te wachten over wat de huidige status is.
Het openingsboek van Necchi is uitstekend ingesteld op de speelstijl van Shredder en ook erg goed in oude versies van Kure boeken te killen (zie Shredder-Brutus), maar het schiet tekort tegen speciaal voorbereide boeken.
Diep heeft dit WK met wit niet verloren. 2 remises afgestaan met wit. In totaal 5 uit 6 met wit. 1 uit 5 met zwart echter. Tegen Brutus met zwart een kleine transpositiefout in het boek, kan gebeuren, met grote gevolgen. Partij tegen Junior verknald door een testfout vanuit gewonnen stelling. Shredder was gewoon beter en door ellende met de supercomputer een gewonnen stelling tegen Fritz verknald. De wit partij tegen Falcon in ronde 3 daarvan weet ik zeker dat met de Diep-ronde-8-en-verder-versie die partij niet remise was geworden maar geresulteerd had in een punt voor Diep.
O ja, nog vergeten te vermelden … de supercomputer was gedurende één dag ook nog gecrasht. Het zijn tenslotte delicate machines…
Daar dit in het WK 2002 ook al het geval was, was ik uiterst blij dat ik nu eindelijk eens een partijtje kon spelen met de op dat moment nog veel beter functionerende PC versie (dit was ronde 6, pas kort voor ronde 8 had ik een versie die beter werkte). Vanzelfsprekend had ik wel een prima werkende PC versie bij de hand en gereed staan om te spelen.
Helaas speelde die dag maar één partij en speelde Diep tegen de uiterst sympathieke en vriendelijk ogende Steffen A Jacob, die mogelijk zou kunnen uitblinken in het schrijven van een weggeefschaak programma genaamd Hossa.
Na ronde 8 heb ik mezelf meer tijd gegund om de omgeving goed te bekijken. Wat opvalt in Graz is de enorme hoeveelheid bedelaars op straat, die daar stonden ondanks de kou, natte sneeuw of regen. Van ’s ochtends vroeg tot ’s avonds laat. De paar honderd meter van het hotel naar de grot, kwam ik er soms vijf tegen. Wellicht komt dit doordat Graz een beetje een afgelegen gebied in Oostenrijk is. Om er te komen op de heenweg waren we (Gian-Carlos Pascutto, Rudolf Huber en ondergetekende) al uren kwijtgeraakt achter die paar trucks die nog geen 60 reden over de tweebaansweg richting Graz. Inhalen levensgevaarlijk. Heel af en toe zie je dan één verlaten huis staan, maar gedurende honderden kilometers haast niets.
Natuurlijk was het ook rotweer eind november, dat paste wel bij het WK. Waar dus de plaatselijke organisatie van alles had gedaan om het WK prima te organiseren (vooral met de gratis consumptie bonnen tijdens het WK was ik als echte Nederlander erg blij mee, want van boodschappen doen komt het niet tijdens een WK), er zijn altijd van die aspecten die je blijven bijhangen. Eén zo’n aspect was het enorme uitzicht bovenop de Berg im Dome. Een andere de spetterende openingsshow van het WK. Ook moest ik enorm wennen aan een hotel dat geen eieren serveert bij het ontbijt. Ach ja, soep maken daar snappen ze in Oostenrijkse restaurants ook niet veel van. Zo moesten wij als programmeurs heel hard lachen bij één van de gezamenlijke diners waar Frans Morsch een wel heel erg vreemdsoortige soep kreeg opgediend.
Erg grappig vond ik ook Bello, links in beeld, de puppy die in de laatste dagen acte de presence gaf. Dat die regelmatig een pak slaag van baas Chrilly kreeg, dat vond ik kenmerkend voor dit WK.