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 één
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ënteerd om zijn revolutionaire ontwerpen te kunnen doen
die steevast weer de rekensnelheid een aanzienlijk stap vooruit brachten. Maar
ideeën 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ële 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ïnstalleerd 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