TDDB78 Progr 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 inbyggda system gör programmeringsövningar i parallella varianter av C/C++.

Organisation:
Kursen ges i två varianter, med största delen gemensam. Inriktningen inbyggda system, 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 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 kurs variant. Det två varianterna inbyggda system (TDDB78) respektive numeriska algoritmer och tekniska beräkningar (TANA 77) 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 minnebaserad programmering. För dataparallell programmering används NSCs 16384-processors MASPAR maskin, medan för meddelandebaserad programmering 128-processors Parsytecmaskinen och 230 processors Cray T3E maskinen. För delat minneprogrammering används 12-processors Ultra sparc enterprice 4000, alt superdator vid NSC.

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

TEN1En skriftlig tentamen., 2 p.
LAB1En laborationskurs. , 2 p.

Undervisningsspåk är svenska.

Engelsk kursplan

Gäller 1999, beslut av utbildningsnämnden november 1998