Most recent comments
Liveblogg nyttårsaften 2017
Tor, 11 months, 2 weeks
Jogging og blogging
Are, 1 year, 11 months
Liveblogg nyttårsaften 2016
Are, 1 year, 11 months
Reading in dark times
Are, 2 years
Moldejazz 2016
Camilla, 2 years, 4 months
Dørskilt
Karoline, 2 years, 5 months
Halifax
Tor, 2 years, 5 months
Sony Smartwatch 3 review
Tor, 2 years, 6 months
Numerikk, takk
Tor, 2 years, 6 months
Topp tur
Camilla, 2 years, 8 months
50 book challenge
Camilla, 11 months, 2 weeks
Ten years ago
Kurs for brukere
Tor
Controls
Register

Amdahl og Gustafson

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 kortere tid på å løse problemene sin, men derimot øke størrelsen på problemene slik at de fremdeles tar omtrent like lang tid. Hastighetsøkningen, som man da definerer ved å sammenligne med tiden det ville tatt å kjøre det samme programmet på en maskin med én kjerne, blir


Der N er antall kjerner, og 1-P er den delen av programmet som ikke lar seg parallellisere, som man antar er like stor hele tiden.

Kursholderen påpekte forøvrig det morsomme poenget at Amdahls lov gjelder for doktorgradstudenter, for vi vil helst bli ferdige med problemene våre så fort som mulig, mens Gustafsons lov gjelder for professorer, for de har ikke så mye tidspress, og vil heller bruke like lang tid som før men produsere bedre data. Og så begynte han på en historie om en student som hadde kommet til superdatamaskinfolkene og vært helt panisk fordi hun hadde seks uker igjen av doktorgraden, og programmet hennes tok altfor lang tid, og jeg forventet naturligvis at han skulle fortelle om hvordan de hadde tatt enkle grep og gjort programet massivt parallelt og dermed reddet dagen, men, sa han, med en liten latter, på seks uker var det naturligvis ingenting de kunne gjøre. Huffda.

-Tor Nordam

Comments

Jeg har hatt en lignende tanke i det siste. Eller jeg er ikke sikker på om den er lignende eller om den er helt urelatert, egentlig. Og med "det siste" mener jeg "omtrent siden jeg begynte på masterstudiet for mange år siden". Hvor blir det av all den tiden vi sparer på datamaskiner? Man skulle jo tro at det ville fri opp mye mer tid til tungt tenkearbeid når man ikke lenger trenger å klippe og lime med saks og lim, eller når man kan søke etter ord i et dokument for å finne akkurat det man er ute etter (heller enn å basere seg på mer eller mindre leservennlige indekser). Selv jeg, som bruker mesteparten av tiden min på NLS, hvor jeg kan søke opp bøker med et par tastetrykk der man før måtte bla gjennom en kortkatalog, jeg bruker jo fortsatt minst tre år på å skrive en doktorgrad. Nå er jeg klar over at folk gjerne brukte lengre tid i gamle dager, men likelvel. Går all den resterende tiden bort i kabal og blogging?