G høgskolen i oslo Emne: Parallell proqrammerinq med M~ I Gruppe(r):.3aa, 3ab, 3ac, 3ia, 3ib, 3ic Eksamensoppgave Antall sider (inkl. n består av: I forsiden): 6. Tillatte I hjelpemidler: Emnekode: LV124A Dato: 15.12.2005 Antall oppgaver: 3 li Faglig veileder: T. M. Jonassen Eksamenstid" 9.00-12.00 Antall vedlegg: Ingen I Læreboken Peter S. Pacheco: Parallel programming with MPI. Kalkulator. I Kandidaten må selv kontrollere at oppgavesettet er fullstendig. Ved eventuelle uklarheter i oppgaveteksten skal du redegjøre for de forutsetninger du legger til grunn for løsningen. Avdeling for Ingeniørutdannlng. Posi)Ok8 4 St. CXavs ".0130 Oslo. tlf: 22 4532 00. faks: 22 45 32 05. Iu@lhio.no
2 \M'-tQ
Parallell programmering med MPI Oppgavesettet består av tre oppgaver med underpunkter. Ved bedømming teller hver hovedoppgave like mye. Tilslutt i oppgavesettet er det oppgitt noen lover om speed-up og skalerbarhet du kanskje vil få bruk for. Der du blir bedt om psudokode kan du bruke kode som for eksempel Send(data,destinasjon,tag) for MPI_Send() og lsend(data,destinasjon,tag) for MPI_lSend() etc. Du behøver altså ikke A. ha det korrekte antall parametere i de forskjellige funksjonskal1ene. Les nøye gjennom oppgavesettet før du starter. Lykke til!. Deloppgave A Forldar hva Rynns klassifisering av parallelle arkitekturer innebærer. og beskriv kort de forskjellige hovedtypene av arkitekturer.. Deloppgave B Forklar hva som er spesielt for et Linux Beowulf Cluster. Klassifiser et slikt parallelt system i Aynns klassifisering, og lag en figur som viser et typisk Linux Beowulf Cluster.. Deloppgave C Forklar hva som menes med parallell overhead. og angi foskjellige kilder til dette. Angi hvordan du kan måle parallell overhead i et parallelt program skrevet i MPI.. Deloppgave D Forklar hva som ~es psudokode som vil gi deadlock.. Deloppgave E med deadlock i et parallelt program. Gi minst to forskjellige eksempler med Hva er forskjellen på kollektiv kommunikasjon og peer-to-peer kommunikasjon i et parallelt program. Angi noen MPI funksjoner som brukes i kollektiv kommunikasjon. og noen MPI funksjoner som brukes i peer-to-peer kommunikasjon.. Deloppgave A Erotosthenes var en gresk matematiker som levde 276-194 før Kristus. Eratosthenesil er en algoritme som kan brukes for å finne primtall. Denne kan beskrivesekvensielt som følger: 1. Lag en liste av naturlige tall 2,3,...,n, hvor ingen av tallene merket. 2. Sett k til 2, det første umerkede tallet i listen
3. Gjenta til ~ > n: (a) Herk alle multipler av k mellom ~ og n. (b) Finn minste tall større enn k som ikke er merket, og..ttk til denne verdien. 4. De umerkede tallene i listen er primtall. Parallelliser denne algoritmen. og skriv pseudokode for for et parallelt program som benytter denne algoritmen for å finne primtall. Angi tilslutt hvordan du kan effektivisere algoritmen.. Deloppgave B Et perfekt heltall er et positivt heltall hvis verdi er summen av alle sine positive heltallsfaktorer, ~ seg selv ekskludert. De to første perfekte tall er6 og 28 siden 6=1+2+3, og 28=1+2+4+7+14. Den greske matematikeren Euklid som levde ca 300 år før Kristus beviste at hvis 2n - l et primtall, så er (~ - l) 2n-1 et perfekt tall. Skriv psudokode for et parallelt program som finner de første åtte perfekte tallene.. Deloppgave A Oppgave 3 Forklar hva som menes med superlineær speed-up. Angi minst to situasjoner hvor dette kan forekomme. [Hint: Betrakt både en sekvensiell dybde første søk (DFS) algoritme i et tre og deretter en parallell utgave av denne algoritmen.]. Deloppgave B Ta utgangspunkt i defmisjonen for speed-up og utled Amdahls lov. Angi en viktig konsekvens av denne loven.. Deloppgave C Betrakt følgende måleresultater av speed-up 'l' av et parallelt program kjørt på p prosessorer: P 8 W 4.71 Hva kan du si om hovedgnmnen til at man bare oppnår en speed-up på 4.71 når dette programmet kjøres på åtte prosessorer?. Deloppgave D Kjøretiden for seks parallelle programmer kalt B, b, c, d, e og f har blitt målt på en til itte prosessorer, og man har funnet speed-up for disse. Dette er angitt i tabellen under:
For hvert av de seks programmene angi hvilket av følgende tre utsagn, kalt I, Il, og Ill, under som sansyligvis best beskriver hvordan programmene vil oppføre seg hvis de kjøres på 16 prosessorer. Gi en kort begrunnelse for svarene dine: I) Speed-up som oppnås på 16 prosessorer vil sansynjigvis minst være 40% høyere enn den som oppnås på åtte prosessorer. Il) Speed-up som oppnås på 16 prosessorer vil sadsynligvis være mindre enn 40% høyere enn den som oppnås på åtte prosessorer grunnet en stor sekvensiell komponent i beregningen. DI) Speed-up som oppnås på 16 prosessorer vil sansynligvis være mindre enn 40% høyere enn den som oppnås på åtte prosessorer grunnet voksende parallell overhead etterhvert som antall prosessorer øker.. Amdabls lov La f være den delen av operasjoner i en beregning som må utføres sekvensielt. her er O os f os l. Maksimal speed-up '" man kan oppnå med en parallell maskin med p prosessorer som utfører denne beregningen er gitt ved. Gustafson-Barsis lov Gitt et parallelt program som løser et problem av stø~lse n ved å bruke p prosessorer. La s betegne den delen av total kjøretid brukt i sekvensiell kode. Den maksimale speeci-up lp man kan oppnå med dette programmet er da gitt ved esp+(l-p)s. Karp-Flatt metrikken Gitt en parallell beregning som viser en speed-up li' på P ~.DWJd p > telle sekvensielle fraksjonen e av beregningen er definert som Den eksperimen- e= 1:/m.1-
. Isoerrektivjtets relasjonen Anta et parallelt system bar en effektivitet E(n, p), hvor n betegner problemstørrelsen og p betegner antall pi'osess(xer. La C = E(n. p)/(1 - E(n. p» og la T(n. I) betegne sekvensiell kjøretid. og la Tø(n. p) betegne parallell overllead For. opprettholde det ~ niva av effektivitet nir antall JXosessorer vokser, si må pmblemstørrelsen økes slik at følgende ulikhet er ~It: T (n, l) ~ C To (n, p) Slutt!