TDDB78 PROGRAMMERING AV PARALLELLDATORER, INBYGGDA SYSTEM, 4 poäng
/Programming of Parallel Computers, embedded systems/

För: D4, C4, Y4, M4

Utbildningsområde: Teknik    Ämnesgrupp: Datalogi
Fördjupningsnivå: D

Klassning för datavetenskaplig examen: Datavetenskap

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. Det rekommenderas en kurs i processprogrammering eller liknande (t.ex. TDDB12), eftersom förståelse för processbegreppet förutsätts. För kursvarianten mot tekniska beräkningar rekommenderas kunskaper i Fortran och numerisk analys. Kursvarianten mot massiv parallellism gör programmeringsövningar i parallella varianter av C/C++.

Organisation:
Kursen ges i två varianter, med största delen gemensam. Inriktningen massiv parallellism, beteckning TDDB 78, 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 parallell programmering och användning av lämpliga verktyg.

Kursinnehåll:
Arkitekturen hos parallelldatorsystem: Minneshierarkier, delat minne samt distribuerade minnesarkitekturer. Vektoroperationer. Parallella exekverings modeller 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 parallell program. MPI (Message Passing Interface). Felsöknings- och prestanda mä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 kurs variant. Det två varianterna massiv parallellism (TDDB 78) respektive numeriska algoritmer och tekniska beräkningar (TANA 77) er bjuds. 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 och 184-processors Cray T3E maskinen. 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.

TEN 1En skriftlig tentamen.
LAB 1En laborationskurs.

Engelsk kursplan

Gäller 1997/98, beslut av utbildningsnämnden maj-97