2013/2014

62557 Parallel Programming

Engelsk titel:

Parallel Programming

Sprog:

Point( ECTS )

7,5

Kursustype:

Diplomingeniør
 

Skemaplacering:

Forår
Efterår

Undervisningens placering:

Campus Ballerup

Undervisningsform:

Teori kombineret med praktiske programmeringsøvelser og obligatoriske kursusopgaver (assignments).

Kursets varighed:

[Kurset følger ikke DTUs normale skemastruktur]

Evalueringsform:

Bedømmelsesform:

Tidligere kursus:

IPARP-U1

Anbefalede forudsætninger:

Overordnede kursusmål:

Alle moderne computer-systemer er i større eller mindre grad parallelle systemer. For det første har de fleste computere to eller flere kerner (CPU'er) som gør det muligt at afvikle flere tråde samtidigt, og det forventes at computere i de nærmeste år vil få væsentligt flere kerner.
For det andet er alle computere forbundet til netværk med deraf følgende muligheder for samarbejde, som det f.eks. kendes fra client-server systemer eller fra cluster-systemer, hvor flere computere samarbejder om at løse opgaver, som kræver stor regnekraft eller håndtering af store datamængder.
For at udnytte sådanne parallelle systemarkitekturer skal programkoden kunne skaleres enten som tråde fordelt på flere processorer med fælles lager eller som et eller flere programmer fordelt på flere netværksopkoblede computere.
Formålet med dette kursus at give begrebsmæssig og praktisk forståelse af parallelle systemer og de problemstillinger, som er forbundet med udvikling af programmer til sådanne systemer; så som at identificere parallelliseringsmuligheder i software-designet, opdeling i parallelle aktiviteter og parallelle aktiviteters deling af data.

Læringsmål:

En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
  • redegøre for forskellige systemarkitekturer og dertil relaterede programmeringsmodeller som de defineres i Flynns taksonomi.
  • redegøre for Amdahls og Gustafsons love for opnåelig gevinst ('speed-up') ved parallellisering.
  • identificere og forklare væsentlige 'concurrency problems' i parallelle programmer og redegøre for klassiske synkroniserings- og kommunikationsmekanismer
  • kende principper for design og realisering af programmer til SIMD og MIMD arkitekturer.
  • redegøre for begreberne 'fine grain', 'medium grain' og 'coarse grain' parallellitet og relatere dem til programmeringsmodellerne og programudformning.
  • analysere programmeringsopgaver med henblik på parallellisering ved 'functional decomposition' eller 'data decomposition'.
  • redegøre for kendte parallelle algoritmeskabeloner ('algorithm patterns').
  • realisere parallelle aktiviteter ved brug af tråde og processer.
  • redegøre for formelle metoder til verifikation af parallel programmer.
  • anvende formelle metoder til verifikation af parallelle programmer

Kursusindhold:

Parallelle arkitekturer - Flynns taksonomi.
Parallelprogrammering: procesmodel, synkronisering, gensidig udelukkelse, kommunikation
Parallelle programmeringsmodeller (fælles lager, tråde, message passing, SPMD, MPMD).
Design af parallelle algoritmer.
Partitionering og dekomposition.
Parallelle algoritmeskabeloner.
Design og implementering af parallelle algoritmer til SIMD computere.
MIMD Programmering - UMA modellen
MIMD programmering - NUMA modellen: message passing, asynkron og synkron kommunikation
Verifikation af parallelle programmer.

Litteraturhenvisninger:

Diverse noter om parallelprogrammering, Pthreads, OpenMP og OpenMPI.
Multithreaded Programming Guide, Sun Microsystems. (pdf document)

Lærebog: Meddeles ved kursusstart.

Bemærkninger:

Den studerende skal i løbet af kurset løse et antal obligatoriske opgaver. Til hver opgave skal udarbejdes en øvelsesrapport som opsummerer teorien og beskriver den udarbejdede løsning og eventuelle måleresultater.
Ved eksamen skal den studerende præsentere en af de obligatoriske opgaver. Opgaven vælges ved lodtrækning. Fremlæggelsen skal dække relevant teori såvel som en redegørelse for den praktiske løsning af opgaven. Eksaminationen af en studerende varer ca. 30 minutter.

Kursusansvarlig:

Henning Haugaard , Ballerup Campus, rum X 2.49, Tlf. (+45) 3588 5194 , henhu@dtu.dk

Institut:

62 DTU Diplom

Kursushjemmeside:

-

Tilmelding:

I CampusNet
Sidst opdateret: 09. juli, 2013