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å
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
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