För att simulera en enorm mängd data effektivt krävs en noggrann orkestrering. Det nya världsrekordet nådde 1,7 tusen biljoner beräkningar i sekunden.

Text: Nicklas Hägen

Forskare från Åbo Akademi har deltagit i en forskargrupp som tagit ett nytt världsrekord. Det är fråga om snabbheten och storleken i en datasimulering på mikronivå, närmare bestämt av hur vatten rinner genom porös sandsten. Simuleringen gjordes enligt en metod för att beräkna vätskeflöden som kallas Lattice-Boltzmann-metoden.

Körningen gjordes på Titan, världens näst största superdator, som finns i Oakridge, Tennessee i USA. Av de 18 688 grafikprocessorer som datorn består av, användes 16 384. Det möjliggjorde som bäst en hastighet på 1,7 petaflops, alltså 1,7 tusen miljoner miljoner (femton nollor), flyttalsoperationer per sekund, vilket är världsrekord.

– Det är sådana mängder att man inte förstår dem. Det sägs att man förstår tal som är i storleken årslönen, efter det är de bara siffror, säger Jan Westerholm, professor i datateknik vid Åbo Akademi.

Simulerat vätskeflöde i en liten del av den ursprungliga kuben. Röd färg innebär snabbt vätskeflöde, gult och grönt mellanliggande värden, medan blått indikerar långsamt flöde.

Simulerat vätskeflöde i en liten del av den ursprungliga kuben. Röd färg innebär snabbt vätskeflöde, gult och grönt mellanliggande värden, medan blått indikerar långsamt flöde.

Simuleringen programmerades av Fredrik Robertsén, doktorand i informationsteknologi vid Åbo Akademi. Den utfördes som en del av ett forskningsprojekt vid Jyväskylä universitet, som leds av doktor Keijo Mattila, och som undersökte hur vatten tränger igenom porös sandsten. Med i samarbetet finns också bland annat brasilianska oljeföretaget Petrobras.

– Vid Petrobras använder de havsvatten för att trycka ut oljan ur den porösa sandstenen. De vill alltså få havsvattnet att tränga in i stenen och ersätta oljan. I och med att det är ett poröst material finns det håligheter i det som man hoppas fortsätter in genom systemet. Vi räknade hur små porer som behöver tas med för att simulationen ska motsvara de experimentella resultat som finns, säger Westerholm.

Från CPU till GPU

Titan har 18 688 grafikprocessorer, 32 petabyte hårddiskutrymme och en daglig strömförbrukning som motsvarar årsförbrukningen i ett hus. När superdatorer blir så här stora är de alltså riktiga hårdvarumonster, men för att fungera effektivt behöver mjukvaran ändå programmeras ordentligt.

Westerholms forskargrupp har sedan 2001 utnyttjat tjänsterna vid CSC – IT-Center for Science: ett statligt ägt och av Undervisnings- och kulturministeriet administrerat IT-center för vetenskap som äger Finlands enda superdator. Tillsammans med både inhemska och utländska forskningsgrupper har man utvecklat program för superdatorer för att utföra olika typer av simuleringar och beräkningar.

Superdatorerna har utvecklats mycket under den här tiden. Från att ha använt vanliga mikroprocessorer, CPU-processorer, använder många av dem idag också grafikprocessorer, GPU-processorer.

Skillnaden mellan dessa processorer är i all enkelhet att en CPU-processor är bra på att sköta många olika saker samtidigt, medan GPU-processorerna består av betydligt fler beräkningsenheter som alla utför samma operationer i takt. De är inriktade på att göra endast en sak åt gången, men det finns tusen enheter som gör det samtidigt.
Det betyder att program skrivna för vanliga processorer behöver skrivas om för en superdator med grafikprocessorer.

– När man skriver små program kan man ”slösa” resurser, så att en stor del av datorn är sysslolös en stor del av tiden för att man har orkestrerat sitt arbete ineffektivt. Det är ett litet extra jobb att kompilera sitt gamla program på den nya maskinen och köra det. Det är där vi kommer in. Vi är inte intresserade av vätskesimuleringar i sig, utan av att utveckla algoritmer och program som kör effektivt på superdatorer, säger Westerholm.

Robertsén gjorde grafikprocessorversionen av simuleringen. I sitt magisterarbete visade han hur man kör Mattilas kod på en grafikprocessor och till doktorsavhandlingen programmerade han om det för en stor mängd processorer.

– När vi väl fått koden att fungera på en grafikprocessor kom vi till frågan om vad som händer om man skalar upp problemet. Då började det handla om att fördelning av arbete mellan processorerna och hur de kommunicerar med varandra, säger Robertsén.

Ett sätt att effektivera simuleringen var att ge alla processorer en liknande arbetsmängd genom att gå igenom hur data som matas in var uppbyggt. Ett annat var att förbättra ordningsföljden på hur processorernas arbete lagts upp. Genom att göra det kunde utbytet av information mellan processorerna påskyndas.

– En superdator idag har väldigt många processorer, tiotusentals GPU:n och hundratusentals CPU:n. Om jag vill att alla de här processorerna samtidigt ska jobba på ett visst problem har jag ett managementproblem. Jag måste försöka se till att alla processorer har något att göra hela tiden, säger Westerholm.

– Med ett typiskt program i dag väntar processorerna i värsta fall 50 procent av sin tid på att få information av andra processorer innan de kan gå vidare. Ett problem i programmeringen av superdatorer är hur man ska få dem att samarbeta på ett tidsmässigt effektivt sätt.

Världens största och snabbaste 3D-simulering enligt Lattice-Boltzmann-metoden beskriver hur vatten flyter igenom en 1,5 cm3 stor bit Fontainebleu-sandsten. Genom en form av skiktröntgen kallad syntetisk röntgentomografi hade forskargruppen tagit fram världens detaljrikaste bilder av sandstenens struktur. Dessa bilder användes som data för simuleringen så att de delades i 16 384 så kallade voxlar, punkter som är 3D-motsvarigheten till 2D-pixlar. Från varje voxel följde man vätskeflödet till de omkringliggande punkterna i alla riktningar (se bilden ovan). På det här sättet fick man en skala – den sträcka det är mellan punkterna – för simuleringen som var mindre än en mikrometer. – För att bättre förstå proportionerna kan vi tänka oss att denna submikronupplösning motsvarar ett experiment där man skivar en vanlig speltärning i över 16 000 skivor och varje skiva har en högre upplösning än den bästa biografduken idag, säger Westerholm.

Världens största och snabbaste 3D-simulering enligt Lattice-Boltzmann-metoden beskriver hur vatten flyter igenom en 1,5 cm3 stor bit Fontainebleu-sandsten. Genom en form av skiktröntgen kallad syntetisk röntgentomografi hade forskargruppen tagit fram världens detaljrikaste bilder av sandstenens struktur. Dessa bilder användes som data för simuleringen så att de delades i 16 384 så kallade voxlar, punkter som är 3D-motsvarigheten till 2D-pixlar. Från varje voxel följde man vätskeflödet till de omkringliggande punkterna i alla riktningar (se bilden ovan).
På det här sättet fick man en skala – den sträcka det är mellan punkterna – för simuleringen som var mindre än en mikrometer.
– För att bättre förstå proportionerna kan vi tänka oss att denna submikronupplösning motsvarar ett experiment där man skivar en vanlig speltärning i över 16 000 skivor och varje skiva har en högre upplösning än den bästa biografduken idag, säger Westerholm.

 

Forskarna utnyttjade en egenskap hos grafikprocessorer som möjliggör kommunikation samtidigt som den gör beräkningar.

– I stället för att processorn räknar ut allt och sedan väntar på att data har kommunicerats med andra processorer, räknar vi först ut det som ska skickas vidare. När processorn skickat det räknar den allt annat – det som inte behöver kommuniceras – samtidigt som den väntar på att få information tillbaka från de andra processorerna. Det innebär att de enskilda processorerna har jobb en mycket större del av tiden, i stället för att vänta på att data ska komma in och gå ut, säger Westerholm.

En av Robertséns utmaningar var att materialet var så stort.
– Materialet var hundra gigabyte stort när det var komprimerat, uppackat var det två terabyte. Hur får man 16 384 GPU:n att läsa två terabyte på några sekunder, så att man inte lägger all tid på att läsa data? säger Robertsén.

Lösningen, säger han, låg i att använda parallella filsystem.
– Titans parallella filsystem innehåller närmare 300 lagringsnoder. Om man skriver en stor fil sätts en del på den första, en annan på den andra och så vidare. Data fördelas över noderna, och då man läser är det flera noder som alla samtidigt levererar data. Genom att fördela filen på flera hårddiskar kan man läsa in snabbare och också skriva ut snabbare.

Och snabbt gick det. Westerholm preciserar:
– Med 16 384 noder kunde vi som bäst utföra 1,7 petaflop per sekund, vilket är världsrekord. Vi körde alltså mer än tio i potensen femton, det vill säga över tusen biljoner räkneoperationer i sekunden.

Inte väsensskild från hemdatorn

Komponenterna i en superdator är vanligtvis de bästa i sitt slag, vilket gör att de har flera kärnor och lite snabbare minnestrafik än bulkvaror i butiken. Men i princip kan vem som helst köpa komponenter med liknande prestanda.

– Du kan köpa exakt samma komponenter som finns i en superdator om du har råd, men du kan köpa nästan exakt samma GPU som spelgrafikprocessor för runt 600–1 000 euro stycket, säger Robertsén.

Westerholm tillägger att det som gör en superdator till en superdator är nätverket mellan de så kallade ”noderna”: omkopplings- eller slutpunkter i datakommunikation.

– Nätverket möjliggör att de olika delarna i datorn kan utväxla stora mängder data kors och tvärs. Noden kan befinna sig var som helst i nätverket och ändå kan de utbyta data snabbt, säger Westerholm.

Hur stora datorer behöver vi? När kommer gränsen emot?
– För fysiken finns det inga gränser. Det kommer alltid nya problem som man vill köra på allt större och större system. När man börjar beskriva saker på atomärnivå, till exempel om man studerar vad som händer i olika delar av biologiska celler, kan man skuffa behovet av beräkningskapacitet ganska långt uppåt, säger Westerholm.

I praktiken finns det ändå gränser. Att hålla processorernas temperatur på en nivå som hårdvaran klarar av är en utmaning när effekten ökar. Finlands enda superdator finns i Kajana av en god orsak: man använder kylan i norr för att kyla datorn.

Elförbrukningen är i sig ett annat hinder för att öka datorns storlek.
– Utan större infrastrukturförändringar kan man få ut en effekt på 20 MW, men i praktiken går gränsen vid en energiförbrukning på 10 MW. Efter det vill ingen betala elräkningen. I princip kan man i dagsläget skala upp datorn så stort man vill, men man får något som man behöver Olkiluoto för att köra, säger Robertsén.

I planeringen av nästa generations superdator har det funnits en idé om att begränsa elkonsumtionen till 20 MW.
– Det fick processortillverkarna att haja till. Processorerna blev genast strömsnålare. De hade en massa gamla saker i sig, till exempel kan de ännu köra gamla DOS-program. Tar man bort allt sånt kan man förenkla dem och minska på strömförbrukningen ganska mycket, säger Westerholm.

Framöver siktar man på superdatorer med mera minnesbandbredd och fler kärnor men färre noder. Då noderna blir färre gör man dem större och sätter mera resurser i en nod för att göra nätverkskommunikationen lättare.

– Eventuellt går man bort från att superdatorn är en vanlig men stor och med bättre nätverk utrustad server, till att tillverka specialprocessorer för dem. Som bäst diskuteras processorer med 72 kärnor, säger Robertsén.

Specialprocessorer skulle innebära att man frångår processorer som kan programmeras att beräkna vad som helst, och bygger dem för en specifik uppgift. Westerholm säger att det kan löna sig om det handlar om en apparat som gör samma sak hela tiden.

– Det finns rätt många sådana maskiner, till exempel mobiltelefonerna har mycket med nättrafik att göra: de tar emot och skickar radiosignaler. Där kan det vara en idé att ha en krets som är specialiserad just för det. Det blir mera strömeffektivt och snabbare.

 

Inte för vem som helst

Världens största superdator heter Tianhe (”Vintergatan”) och finns i Kina, men utlänningar har svårt att få tillstånd att använda den. Amerikanerna är frikostigare med användningen, och för att få använda Titan behöver man bara gå igenom en ansökningsprocedur. Det ordnades för världsrekordkörningen via CRESTA, Collaborative Research into Exascale Systemware, Tools and Applications, ett av Europeiska kommissionen finansierat samarbete för superdatorer där Åbo Akademi var partner via Westerholms grupp.