Föreställ dig att din arbetsgivare plötsligt en dag kommer med ordern: ”Bygg en superdator! Och den ska vara bra!” En panikartad känsla infinner sig. Vad ska man tänka på när man sätter ihop en dylik maskin? Vilka komponenter är lämpligast? Vilket operativsystem?

Du behöver en snabbkurs i superdatorer, och var är bäst att vända sig med frågor än stället där man bygger sådana maskiner: Parallelldatorcentrum (PDC) på Kungliga Tekniska Högskolan i Stockholm. TechWorld gjorde ett besök.

– Vi brukar börja med att fråga beställaren vilka applikationer man ska köra. Antigen bygger man ett system för allmänna beräkningar, eller ett som är speciellt anpassat för den applikation man ska köra, säger Daniel Ahlin, teknisk chef på PDC.

– Det kan göra väldigt stor skillnad i pris och prestanda. En av de viktigaste aspekterna är om man ska köra ett enda jätteproblem, eller flera mindre problem samtidigt.



Datorn med Saltkråkan på är Lindgren
, PDC:s senaste maskin från Cray. Den stora grå lådan ovanpå är värmeväxlarna för energiåtervinningen. Med tiogradigt vatten in får man 33-gradigt vatten ut.

Den stora stötestenen
Den stora stötestenen är nämligen hur man löser kommunikationen inom datorn. Processar man ett enda jätteproblem måste man lösa kommunikationen inom hela datorn, men med flera små problem behöver man bara kommunicera effektivt inom de enskilda grupperna.

Problemen kan antigen vara trivialt parallelliserbara, där resurserna kan arbeta oberoende av varandra på små delar av problemet, eller också kan det vara svårt att parallellisera och problemet kan ha som egenskap att de olika beräkningsresurserna behöver utbyta mycket information under beräkningens gång. Då hamnar en stor del av investeringsbudgeten på nätverksbiten.

Vi tar konfigurationen av en ljuddämpare som exempel. I det fallet vill man prova några miljoner olika parametrar på en ljuddämpare och få ut ett godhetstal. En sådan parameterstudie kräver oftast inte särskilt mycket kommunikation. Löser man i stället stora linjära ekvationssystem hamnar man någonstans i mitten. Vid spektralanalys med till exempel en stor distribuerad fouriertransform måste alla noder kommunicera med alla. Vid meteorologiska problem behövs väldigt mycket indata och noderna måste dela data med varandra. Cad-ritningar av bilar för syntetiska krockprover eller flygplansvingar för böjprover är mycket tunga indatafiler.

Maxa allt, eller?
Om vi talar om komponenter, vill man bara ha mesta möjliga processorkraft och minne för pengarna?
– Nja, inte riktigt. Du vill inte köpa för snabba processorer. Energieffektivitet är väldigt viktigt. Går du från 2 till 3 gigahertz i processorn dubbleras strömförbrukningen. På prestandasidan har vi fyra mått: minnesbandbredd, flyttalsprestanda, nätverkets latens och dito bandbredd. Mängden minne är inte helt avgörande. Man kan betrakta minnet i hela systemet kontra minnet i varje nod. Om problemet kan parallelliseras väl, är minnet i hela systemet viktigare än mängden per nod. För mycket minne är bara slöseri. Har varje server fyra gigabyte minne per kärna, men man inte använder mer än två, drar minnet onödigt mycket ström, säger Johnny Eriksson, systemansvarig för superdatorn Lindgren.



Så här kan nätet kopplas i praktiken
, på bak­sidan av en superdator uppbyggd med pizzakartong-servrar. De orange och svarta ledarna är Infinibandkablar. Fiber (orange) används när avståndet är för långt för koppar (svart), i detta fall över 12 meter.



En superdator med 3d-torus-topologi kan exempelvis byggas
så att den första dimensionen består av anslutningar inuti ett rackskåp. Den andra dimensionen är anslutningarna inom en rad av rackskåp. Den tredje dimensionen är anslutningarna mellan rackraderna. Ju fler noder man har i ett endimensionellt system, desto längre blir kommunikationsslingan genom dem alla och desto längre blir tiden det tar att kommunicera. Kopplar man i stället samma antal noder i ett tvådimensionellt system blir det flera slingor men betydligt kortare vägar. Med ett tredimensionellt system minskar väglängderna radikalt, men man får ”böta” genom att behöva skaffa betydligt flera anslutningar. För en 3d-torus krävs att varje nod har sex anslutningar. Skulle man använda fyra dimensioner kräver varje nod åtta anslutningar. Fujitsus värsting K Computer är sexdimensionell, men mellan rackraderna bara tvådimensionell.

Infiniband vanligast
Vilket nätverk ska man välja för kommunikation mellan datorerna?
– För ett litet system, eller om det gäller trivialt parallelliserbara applikationer, kan ethernet vara ett alternativ, men för större system är Infiniband vanligast, säger Daniel Ahlin.

– Naturligtvis kan man köpa mindre Cray-system, med deras egenproducerade nätverk Gemini. Extoll är ett annat. Norska Numascale och SGI Numalink är andra alternativ. Men om du ska bygga själv i dag är det Infiniband som gäller, men släng ett getöga på Extoll och Numascale, säger Johnny Eriksson.

Sedan kommer vi till topologin. Systemet byggs normalt med två olika nätverk: ett åtkomstnät för att starta och kontrollera beräkningen, och ett annat för kommunikation under beräkningens gång. Vanligen används det senare även för att sprida indata före och hämta utdata efter körningen.

Bandbreddsskillnaden mellan åtkomstnätet och beräkningsnätet är ofta en faktor 1:30 eller mer – åtkomstnätet är mycket, mycket långsammare än beräkningsnätet.

Det är också en väldig skillnad i latens. Ett ethernetnät med några switchar kanske får en latens på 50 mikrosekunder, medan ett Infinibandnät ligger strax över en mikrosekund. När man har processorer som gör 4–8 operationer på en nanosekund rör sig nätverkslatensen kring 8 000 operationer för en enda kärna.

– Hårddiskar behöver man inte ha i beräkningsnoderna. Beräkningsnätet är snabbare än något hårddiskgränssnitt. En bättre lokal disk kanske ger 200 megabyte per sekund, medan beräkningsnätet ger 5–6 gigabyte per sekund. Endast ett raid-system klarar av att leverera data i paritet med beräkningsnätet. Då är det bättre att ha lagringen centraliserad. Normalt offrar man 1–3 procent av noderna i nätet som diskservrar, säger Johnny Eriksson.



Här står PDC-folket, från vänster Gilbert Netzer
, prototyputvecklare, Gert Svensson, biträdande föreståndare och värmeåtervinnare, Johnny Eriksson, systemansvarig för Lindgren och Daniel Ahlin, teknisk chef. Det är ingen vanlig receptionsdisk de lutar sig mot, utan en så kallad diskdisk, ett raid-kabinett till PDC:s första superdator Bellman.