TDDB 50 PROGRAMMERING AV PARALLELLDATORER, INBYGGDA SYSTEM, 4 poäng

/Programming of parallel computers, embedded systems/
För D4, C4, Y4, M4,(+ 3-årig ingenjörslinje i datalogi, DI)
Utbildningsområde: Teknik, naturvetenskap
Ämnesgrupp: Datalogi
Fördjupningsnivå: D

Mål:
Att ge kunskap om metoder och språk för programmering av parallella datorarkitekturer, samt färdighet att programmera sådana datorer. Kursen skall även ge inblick i hur parallelldatorkraft kan utnyttjas för några tillämpningsområden, t.ex. inbyggda system, bildanalys samt tekniska beräkningar.

Förkunskaper:
Grundkurser i programmering och viss grundkunskap om numeriska metoder. Det rekommenderas en kurs i processprogrammering eller liknande (t ex TDDA 21 eller TDDA 47), eftersom förståelse av processbegreppet förutsätts. För kursvarianten mot tekniska beräkningar rekommenderas kunskaper i Fortran.

Organisation:
Kursen ges i två varianter, med största delen gemensam. Inriktningen inbyggda system, beteckning TDDB 50xx, beskrivs här, medan inriktningen tekniska beräkningar, med kursbeteckning TANA 77, återfinnes bland matematiska institutionens kurser i studiehandboken. Av de 30 föreläsningstimmarna är ca 24h gemensamma för båda inriktningarna. Föreläsningarna behandlar teori och principer, medan laborationerna ger praktiska övningar i parallellprogrammering och användning av lämpliga verktyg.

Kursinnehåll:
Arkitekturen hos parallelldatorsystem: Minneshierarkier, delat minne samt distribuerade minnesarkitekturer. Vektoroperationer. Parallella exekveringsmodeller och språk. Prestandamätning och uppsnabbning för parallellprogram. Meddelandesändningsbaserad programmering respektive dataparallell programmering. Principer för data-parallella språk. Något om tidskomplexitet. Skalbarhet. Schemaläggning av parallellprogram.
Vektorisering och parallellisering av seriella program. Stödsystem för parallellprogram. MPI (Message Passing Interface). Felsöknings- och prestandamätningsverktyg för parallelldatorer. Grundläggande parallella numeriska algoritmer, samt BLAS (Basic Linear Algebra Subprograms).
Tillämpningsområden för parallellprogrammering beroende på val av kursvariant. Det två varianterna inbyggda system och bildanalys (TDDB 50xx) respektive numeriska algoritmer och tekniska beräkningar (TANA 73xx) erbjuds. Parallell lösning av ekvationssystem behandlas i den senare varianten.
Laborationskursen ger praktisk kunskap om programmering av parallella datorsystem, både dataparallell, meddelandesändningsbaserad samt delat minne baserad programmering.
För dataparallell programmering används NSCs 16384-processors MASPAR maskin, medan för meddelandebaserad programmering 128-processors Parsytecmaskinen. För delat minne programmering används 20-processors Sparc-center 2000, alt superdator vid NSC.

Kurslitteratur:
Ian T. Foster: Designing and Building Parallel Programs, Addison-Wesley, 1995.
Samt kompendium.

Examination:
TEN 1 En skriftlig tentamen.
LAB 1 En laborationskurs.