j.kraak@rc.rug.nl
Sinds kort heeft de RUG een nieuwe supercomputer: de Cray SV1e die is
opgesteld in de Zernikeborg. Deze computer is speciaal bestemd voor
onderzoekers die grootschalig rekenwerk willen doen dat niet op een
geavanceerde pc uitgevoerd kan worden, ook al zouden ze die pc jaren
lang laten door rekenen.
De huidige Cray SV1e, de opvolger van de Cray G932, is 驮
uit een opeenvolging van steeds snellere centrale computers van de RUG.
De Cray SV1e is een shared
memory (grootte 32 Gbytes) machine met 32 processoren met een
topsnelheid ofwel peak performance, als u de Engelse term beter
vindt klinken, van totaal 64 Gflops/s. Aan diskruimte heeft de machine
300 Gbytes. Globaal gezien is de capaciteit van de SV1e ongeveer 10 maal
groter dan die van zijn voorganger.
Ingewijden in de superlatieve
wereld van high performance computing, waarin woorden als giga
(G), tera (T) en peta (P) worden gebruikt om de enorme capaciteiten aan
te geven, zullen deze termen veel zeggen. Maar voor de meeste lezers
zullen ze waarschijnlijk weinig inhoud hebben. Daarom zal ik hier wat
vertellen over de fascinerende wereld van high performance computing en
over bepaalde problemen die daar worden uitgerekend. Voor nadere
informatie heb ik enkele specialisten opgezocht die mij het een en ander
hebben laten zien en verteld.
Seymour Cray, de vader van supercomputing
Eerst
bekeek ik samen met mijn collega Doeko Homan, die veel ervaring heeft in
de programmering en het beheer van grote computers, de nieuwe Cray. Veel
is er niet te zien aan de twee manshoge zwarte kasten met golvende
voorpanelen. Op een van de kasten is een glimmende plaat aangebracht met
als frivool element een witte verzonken knop, die aan een navel doet
denken. Met deze knop kun je de machine in noodgevallen uitzetten.
Doeko herinnerde me eraan hoe ik eens, door iets te verplaatsen in de
rekenhal, per ongeluk de algemene, onbeschermde, noodknop aanraakte. Het
gevolg was dat de spanning in de hele rekenhal uitviel. Dat is nu niet
meer mogelijk. Maar dit terzijde.
We kregen het over de legendarische
Seymour Cray (1925-1996) naar wie de Cray is genoemd en die wel de
'vader van supercomputing' wordt genoemd. Cray was een zeer gedreven en
eigenzinnig man, die met het ontwerpen van computers begon in een tijd
dat je nog niet uit wat kant-en-klare onderdelen en een moederbord je
eigen computer kon bouwen. Cray heeft zich altijd diepgaand
wetenschappelijk geori뮴eerd om zijn revolutionaire ontwerpen te kunnen
doen die steevast weer de rekensnelheid een aanzienlijk stap vooruit
brachten. Maar idee뮠alleen zijn niet voldoende: hij had ook de
overredingskracht en het doorzettingsvermogen om zijn ontwerpen
uitgevoerd te krijgen.
Cray was het prototype van iemand die risico durfde te nemen.
Daarvoor omringde hij zich het liefst met jonge mensen "because they
have a lot of enthusiasm and most basically they don't know it can't be
done yet". Ik haal dit aan uit een boeiend interview met Cray, te vinden
op internet.
Cray vond het uiterlijk van computers belangrijk, want
computers hebben immers een bepaalde gevoelswaarde. Voor dat uiterlijk
had hij graag 5% van de totaalkosten over. Hij noemde zijn computers
altijd naar zichzelf, zijn eerste computer rond 1970 heette de Cray-1.
De plattegrond van de Cray-1 had de vorm van de eerste letter van zijn
naam: de C. Volgens Cray was dat zo gekozen om de bedrading zo kort
mogelijk te laten zijn, maar ik verdenk hem er een beetje van dat hij
ook in de vorm zijn naam heeft willen verwerken.
Om de C-vormige opbouw was het indertijd beroemde bankje aangebracht
dat 'de duurste love seat ter wereld' werd genoemd. Wat de prijs van
Cray-computers betreft: lang beweerde Cray dat zijn computers, hoe snel
ze ook waren, altijd $7.000.000 kostten. Dat geldt al lang niet
meer.
Seymour Cray met zijn C-vormige Cray-1 met 'love
seat'
De sommen van Arthur Veldman
Om enig gevoel te krijgen voor de
complexiteit van de problemen die met supercomputers als de Cray worden
opgelost, sprak ik kort met Athur Veldman, als hoogleraar verbonden aan
het Instituut voor Wiskunde en Informatica van de RUG. Vanwege mijn
visualisatiewerk ken ik Veldman en zijn enthousiaste groep studenten en
medewerkers al lang.
Grappig vind ik altijd dat ze het hebben over
'sommen', als ze het over hun enorme berekeningen hebben. Desgevraagd
vertelde Veldman me dat het gebruik van het woord 'som' afkomstig is van
het Nationaal Lucht- en Ruimtevaartlaboratorium (NLR), waar hij lang
heeft gewerkt. Bij het NLR gebruikt iedereen het woord, ook de directeur
als hij een belangrijke opdracht moet binnenhalen.
Titanic in de CAVE
Theresa Helmholt, een promovendus van
Veldman, heeft als som voor haar proefschrift opgekregen de simulatie
van een schip, de Titanic genoemd, in een wilde zee. In Theresa's
huidige model staat het schip nog vast, maar uiteindelijk moet het schip
ook nog mee gaan deinen op de golven. Veel sommen uit de groep van
Veldman lenen zich goed voor visualisatie getuige zijn fraaie collectie
visualisaties op internet.
Thans ben ik bezig om de Titanic in de CAVE, de nieuwe Virtual
Reality-installatie in de Zernikeborg, te visualiseren - inclusief de
beweging van de golven. Ik stel me voor dat je al lopende op het voordek
de golven op je af ziet komen. Ik hoop dat deze CAVE-animatie het nodige
wetenschappelijk inzicht oplevert. Als dat tegenvalt, is het in ieder
geval nuttig voor pr-doeleinden.
Tevens is er een 'literaire'
toepassing. Liefhebbers van de schrijver Nescio zullen de figuur van
de uitvreter uit het gelijknamige verhaal kennen, dat begint met
de volgende beroemde zin: "Behalve den man, die de Sarphatistraat de
mooiste straat van Europa vond, heb ik nooit een wonderlijker kerel
gekend dan den uitvreter". De uitvreter schiep er genoegen in om zich
uren lang op het voordek van een schip of op het, van wit geverfde palen
gemaakte, havenhoofd van Veere te laten overspoelen door water, als een
vorm van 'versterving'. Met de CAVE-animatie van Theresa's som kunnen
toekomstige CAVE-bezoekers zich voelen als een 'virtuele uitvreter'.
Tijdstap uit computeranimatie van de Titanic in een wilde
zee
Navier-Stokes vergelijking
Veldmans groep doet onderzoek naar
turbulentie in stromingen rond objecten, zoals vliegtuigen of
vaartuigen. Dit soort onderzoek is evenwel toepasbaar op elk object in
een stroming, zoals een zwemmer, een schaatser, een haai of een golfbal.
Turbulentie is een verschijnsel dat al heel wat wetenschappers heeft
gefascineerd. Leonardo da Vinci maakte vijf eeuwen geleden reeds een
tekening van een turbulente stroming.
In het begin van de 19e eeuw is de Navier-Stokes vergelijking (NSV)
opgesteld. Dit is een zgn. parti묥 differentiaalvergelijking die, samen
met de wet van behoud van massa, div u = 0, een stroming
inclusief wervelingen rond een object beschrijft.
Navier-Stokes vergelijking
Hierin is u de snelheid van de lucht in een klein
volume-element met druk p; t staat voor de tijd. In
het zgn. Reynoldsgetal Re, dat de stroming karakteriseert, zijn
de afmetingen van het object, de dichtheid van het stromende medium en
de viskeuze krachten verwerkt.
Om de stroming rond een voorwerp te
berekenen, moeten we bovenstaande vergelijking oplossen voor alle
volume-elementjes in een voldoende groot gebied rondom het omstroomde
voorwerp. Als voorbeeld nemen we de stroming rond een golfbal,
waarvan bekend is dat de snelheid toeneemt als er kleine putjes in het
oppervlak worden aangebracht. Deze putjes hebben een gunstig effect op
het ontstaan van wervelingen.
Schatting van rekentijd
Stel dat we het totale volume rond de
golfbal in elk van de drie ruimtelijke dimensies in 1000 stappen opdelen
- minder stappen kan wel, maar dat geeft een onnauwkeurig eindresultaat
- dan moet de NSV voor 1000*1000*1000 (109) volumedeeltjes
worden uitgerekend voor de drie componenten van de snelheid alsmede de
druk. Bij deze berekening zijn dus 4*109 variabelen
betrokken.
Eenmalig uitrekenen is niet voldoende, aangezien de NSV slechts
betrekking heeft op het verschil tussen de variabelen op twee
opeenvolgende tijdstappen. Daarom moet men de berekeningen, uitgaande
van een bepaalde begintoestand, net zo vaak herhalen, tot een min of
meer stabiele toestand ontstaat. Dit kan oplopen tot meer dan
105 tijdstappen.
Volgens het interessante artikel
'Turbulentie, golfballetjes en discrete afgeleiden' van Veldman en
Verstappen (Nieuw Archief van de Wiskunde 5/2 nr. 4 december 2001,
verkorte versie in MUON, maart 2001), zijn in totaal 1017
flops (= floating point operations) nodig voor het volledige
doorrekenen van de golfbal. Daarin is verwerkt de ongeveer
103 flops die het momenteel kost om per volumedeeltje de
Poisson-vergelijking op te lossen. Het zal nog veel wiskundige
inspanning kosten om deze 1000 flops te verlagen naar bijv. 200.
Als we er van uitgaan dat de theoretische topsnelheid van 64 Gf/sec
(=64*109 flops/sec) van onze nieuwe Cray SV1e inderdaad
gehaald wordt, dan zou deze berekening in totaal 500 uur, dus ongeveer
een maand, in beslag nemen. Dat is net op de grens van het haalbare met
de Cray SV1e, want er zijn natuurlijk ook meer gebruikers die er op
willen rekenen. De Titanic zal ook met de Cray SV1e worden
berekend.
Om over deze grote getallen te spreken gebruikt men
bepaalde termen. G=giga betekent 109; T=tera=1012;
P=peta=1015. Voor wetenschappelijke achtergronden en voor de
benaderingen die men toepast als men te weinig rekencapaciteit heeft met
bestaande computers, verwijs ik naar voornoemd artikel.
Bioinformatica
Er zijn nog veel meer problemen die alleen
maar met supercomputers kunnen worden opgelost. Ik noem bijv. het
onderzoek bij enkele FWN-onderzoeksgroepen, waarin al tientallen jaren
grootschalig rekenwerk wordt gedaan. Bioinformatica is een nieuwe klant
voor supercomputers. Daarbij doet men genetisch onderzoek, toepasbaar
bijvoorbeeld op het ontwerp van nieuwe medicijnen. Heel basaal gezien
komen de berekeningen bij genetisch onderzoek neer op het zoeken naar
bepaalde patronen, bijv. corresponderende met een genetische afwijking,
in een zeer groot DNA-molecuul, bestaande uit ongeveer 3 *109
onderdelen. Dit is enigszins vergelijkbaar met het zoeken van een
bepaalde tekst in een zeer lang document. Het programma BLAST wordt
daarvoor gebruikt. Voor eenvoudige zoekopdrachten voldoet BLAST op een
pc goed, maar voor de echt interessante vraagstellingen is er veel en
veel meer rekenkracht vereist.
Zonder op details in te gaan, vermeld ik ook nog dat de Cray SV1e een
bepaalde hardware-functie heeft voor bit
matrixvermenigvuldigingen (BMM) die uitermate geschikt is voor de
zoekproblemen bij genetisch onderzoek. Vergelijkbaar met een integer
representatie is een bepaalde berekening met BMM ongeveer 1000 maal
zo snel.
Cray SV1e met shared memory
Hoe kunnen we supercomputers,
tegenwoordig samengesteld uit een aantal afzonderlijke rekeneenheden
(processoren), die enorme grote aantallen berekeningen laten
uitvoeren? In de eerste plaats door een 'som' te splitsen in delen die
gelijktijdig, ofwel parallel, door de processoren worden
berekend. Later worden de antwoorden samengevoegd. Je kunt bijvoorbeeld
de voorgaande stromingsberekening van het gehele volume opsplitsen in
deelsommen voor deelvolumes.
Omdat de stromingen in de deelvolumes evenwel niet los van elkaar
staan, maar een intensief onderling verband vertonen, moeten steeds
gegevens worden uitgewisseld tussen processoren. Dat is niet nodig
indien de afzonderlijke processoren voor de deelvolumes de beschikking
kunnen hebben over elkaars data. Dit wordt technisch bereikt door de
afzonderlijke processoren een gemeenschappelijk geheugen te geven, een
zgn. shared memory. Het al of niet hebben van een shared memory
onderscheidt de twee voornaamste soorten supercomputers
tegenwoordig.
Het moge duidelijk zijn dat professor Veldman een
sterke voorkeur heeft voor supercomputers met een shared memory, waarvan
de Cray SV1e er een is. Bepaalde problemen in de bioinformatica lenen
zich ook goed voor dit type computers.
Clusters met distributed memory
De laatste jaren zijn
parallelle computers, niet met shared memory maar met distributed
memory, sterk in opkomst vanwege de betrekkelijk lage prijs. Men kan
ze in principe zelf maken door een groot aantal in de winkel
verkrijgbare pc's (nodes) met een eigen geheugen via het net of
via glasvezelkabels aan elkaar te knopen tot een zgn.
cluster.
Zoals reeds gezegd, lenen stromingsproblemen zich
slecht voor clusters omdat de uitwisseling van de data te tijdrovend is.
Andere typen algoritmen, zoals bijvoorbeeld bij scheikundige problemen,
zijn wel goed met een cluster op te lossen. Inmiddels zijn de volgende
twee, algemeen te gebruiken, clusters in het RC aanwezig:
- een 22 node Linux Alpha-cluster met een topsnelheid van 22
Gflops/s, geassembleerd en ge﮳talleerd door Kees Visser.
- een 132 node Linux-cluster van 250 Gflops/s (in 2003 vergroot tot
500 Gflops/s)
Bij de programmering van clusters gebruikt men MPI (Message Passing
Interface). Arnold Meijster geeft op aanvraag cursussen MPI.
Diensten HPC&V
Het Centrum voor High Performance Computing
and Visualisation (HPC&V), een onderdeel van het RC, heeft tot taak
de ondersteuning en het beheer van de Cray SV1e, de beide
Linux-clusters, alsmede de Visualisatie- en Virtual Reality-faciliteiten
in de Zernikeborg. Meer details over de Cray SV1e en de andere
faciliteiten treft u aan op de website van het HPC&V (www.rug.nl/rc/organisatie/pictogram/archief/hpc).
Daar
vindt u bijvoorbeeld een link naar de onlangs verschenen Local Cray
Guide van de hand van Rob de Bruin en Doeko Homan, waarin u het
antwoord kunt vinden op zeer veel technische vragen betreffende het
gebruik van de Cray SV1e. Voor de aanpassing van bestaande programma's
aan de eisen van supercomputers en de verdere optimalisatie kunt u zich
ook wenden tot het HPC&V.
Informatie over cursussen MPI (Message Passing Interface) is
verkrijgbaar bij Arnold Meijster: a.meijster@rc.rug.nl
Het bezoekadres van HPC&V is
De Zernikeborg, Nettelbosje 1,
9747 AJ Groningen
correspondentieadres:
Postbus 11044, 9700 CA
Groningen
e-mail: HPCV@rc.rug.nl
telefoon: (+31 50
363)8080
internet: www.rug.nl/rc/organisatie/pictogram/archief/hpc
Op de Cray-pagina www.rug.nl/rc/organisatie/pictogram/archief/hpc/hp/cray.htm
treft u een link aan naar de speciale internetversie van dit artikel
dat is voorzien van vele links.