Her om dagen var jeg på et lite introkurs i parallellprogrammering rettet mot superdatamaskiner. Det varte bare et par timer, og jeg går dessverre glipp av de to neste kursene, som går litt mer i detalj på OpenMP og MPI, og dessuten et tredje kurs om avansert bruk av Njord, men det var interessant likevel. Mannen som holdt kurset presenterte to lover som gjerne trekkes fra i sammenheng med parallellprogrammering, nemling Amdahls lov, og Gustafsons lov.
Amdahls lov, oppkalt etter norsk-amerikaneren Gene Amdahl, sier noe om hvor stor hastighetsøkning du kan få på programmet ditt ved å parallellisere det. Hvis vi sier at
P er den andelen av programmet som lar seg parallellisere, mens resten av programmet, som da blir 1-
P, ikke lar seg parallellisere, kan du i beste fall få en hastihetsøkning på
der
N er antall kjerner du kjører på. Så hvis for eksempel 10% av programmet ditt ikke lar seg parallellisere, vil du aldri kunne få en hastighetøkning på mer enn en faktor 10, uansett hvor stor datamaskin du har. Amdahls lov fremstår i grunnen som sunn fornuft hvis man tenker litt over det, og sant å si synes jeg kanskje det var litt billig for å få en lov oppkalt etter seg, men noe må man jo kalle den, og det var ikke akkurat som om jeg kom opp med det først.
Gustafsons lov, oppkalt etter John Gustafson, tar et litt annet utgangspunkt. Den antar at etterhvert som tilgjengelig datakraft øker vil forskere ikke bruke ...
« ‹ › »