TDDB78 | Progr av parallelldatorer,inbyggda system, 4 poäng /Programming of Parallel Computers, embedded systems/ För: D4, C4, Y4, M4, IT4 | |
Utbildningsområde: Teknik Ämnesgrupp: Datalogi | ||
Fördjupningsnivå: D | ||
Klassning för datavetenskaplig examen: Datavetenskap, datalogi. | ||
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, 30 föreläsningstimmarna är ca 24h gemensamma för båda inriktningarna medan laborationskursen till största delen skiljer sig åt mellan 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 Cray C90 vektormaskin, medan för meddelandebaserad programmering 128-processors Parsytecmaskinen och 272 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. | ||
TEN1 | En skriftlig tentamen., 2 p. | |
LAB1 | En laborationskurs. , 2 p. |
Undervisningsspråk är svenska.