02347 Parallelle systemer

2016/2017

Kursusinformation
Parallel systems
Dansk
5
Diplomingeniør
F1B (tors 13-17)
Campus Lyngby
Gruppeaktiviteter, opgaver og programmeringsøvelser. Det er ønskeligt, at deltagere gennem kurset tillægger sig engelske fagtermer samt kan udtrykke sig om fagets faglighed på engelsk, hvorfor dele af kursets undervisning foregår på engelsk.
13-uger
F1B
Skriftlig eksamen
4 timer
Skriftlige hjælpemidler er tilladt
7-trins skala , ekstern censur
02333
02312/62514.02326 , Færdighed i objektorienteret programmering. Kendskab til grundlæggende algoritmer og datastrukturer.
Sven Karlsson , Lyngby Campus, Bygning 322, Tlf. (+45) 4525 3754 , svea@dtu.dk

01 Institut for Matematik og Computer Science
I studieplanlæggeren
Kontakt underviseren for information om hvorvidt dette kursus giver den studerende mulighed for at lave eller forberede et projekt som kan deltage i DTUs studenterkonference om bæredygtighed, klimateknologi og miljø (GRØN DYST). Se mere på http://www.groendyst.dtu.dk
Overordnede kursusmål
Kurset fokuserer på en bred introduktion til parallelprogrammering med fokus på anvendelig viden. Kurset introducerer industristandarder som MPI, OpenMP og OpenCL. Bredt tilgængelige arkitekturer der understøtter parallelitet studeres, inklusiv systemer for indlejret og mobil brug.

Fundamental og praktisk teori som programmeringsmodeller, performance-modeller og programmeringsmønstre studeres.

Målet med kurset er at de studerende vil være i stand til at løse simple parallelprogrammerings opgaver som at gøre et program race-free og tage en lille del af et sekventielt program og gøre det parallelt ved at bruge industristandard parallelprogrammeringssystemer. Studerende vil også være i stand til empirisk at evaluere performance af det parallelle system.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
  • kategorisere parallelle computersystemer.
  • forklare performance-påvirkningen af hukommelseshierarkiet.
  • skrive små parallelprogrammer ved hjælp af industristandard parallelprogrammeringssystemer.
  • skitsere principperne for almene parallelle programmeringsmodeller.
  • bruge synkroniseringsmekanismer til at skrive race-free programmer.
  • bruge message-passing til at skrive distribuerede parallelle programmer.
  • evaluere performance af parallelle programmer og computersystemer ved hjælp af empiriske metoder.
  • identificere flaskehalse i parallelle computersystemer.
Kursusindhold
Parallelle computersystemer: Flynn's taksonomi, udfordringer ved parallelle computersystemer, multi-core systemer, GPUer, acceleratorer, effekter fra cache og hukommelseshierarki.
Parallelle programmeringsmodeller: message-passing modeller, delt-hukommelse modeller, task-modeller, dataparallelle modeller.
Synkronisering af tråde og processer: message-passing, gensidig udelukkelse, race conditions, mutexer, semaforer, transaktioner.
Parallelle programmeringsmønstre: fork-join, master-slave, parallelle datastrukturer.
Parallelle programmeringssystemer: MPI, OpenMP, OpenCL, trådbiblioteker.
Performancemodeller og -analyser: Amdahls lov, empirisk performanceanalyse.
Sidst opdateret
28. oktober, 2016