02349 Programmering af Parallelle Computere

2025/2026

Kursusinformation
Programming for Parallel Computers
Engelsk
5
Diplomingeniør
Obligatorisk kursus (B Eng), IT-elektronik
Tilvalgskursus (B Eng), Elektroteknologi
Tilvalgskursus (B Eng), Softwareteknologi
F4A (tirs 13-17)
Campus Lyngby
Gruppeaktiviteter, opgaver og programmeringsøvelser.
13-uger
F4A
Skriftlig eksamen
Skriftlig eksamen: 4 timer
Skriftlige hjælpemidler er tilladt :

Lommeregner er ikke tilladt.

7-trins skala , ekstern censur
02346
0225802346
02312.­(02311/02324).­023260232202335 , Det antages at de studerende er erfarne med programmering i lavniveau programmeringssprog, især C. Studerende skal have erfaring med tråde og processer, samt schedulering på processorer.
Sven Karlsson , Tlf. (+45) 4525 3754 , svea@dtu.dk
Edward Alexandru Todirica , Tlf. (+45) 4525 3748 , eato@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
Dette kursus udstyrer studerende med de væsentligste færdigheder til effektivt at skrive programmer til parallelle computere. Med nogle få undtagelser er langt størstedelen af ​​alle computersystemer parallelle. Mange applikationer mangler at udnytte den tilgængelige processorkraft på grund af ineffektive programmer.

Kurset giver en bred introduktion til distribueret og parallel programmering med fokus på praktisk anvendelig viden. I kurset vil industristandarder for parallelprogrammering, såsom OpenMP, blive introduceret.

Kurset er praktisk med mange små programmeringsøvelser. Fundamental og praktisk teori vil blive studeret. Studerende vil også blive i stand til at måle ydeevnen af parallelle systemer.

Et af kursets mål er at studerende vil blive i stand til at løse simple parallelle programmeringsopgaver, såsom at lave et program race free og tage små dele af et sekventiel program og gøre det parallelt ved brug af industristandard parallelle programmeringssystemer.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
  • skrive små distribuerede- og parallelprogrammer ved hjælp af industristandard parallelprogrammeringssystemer.
  • udnytte samspillet mellem hardware (CPU, hukommelseshierarki og I/O) og softwarekomponenter (biblioteker) til at forbedre programmernes ydeevne.
  • bruge synkroniseringsmekanismer til at skrive race-free programmer.
  • forklare de grundlæggende ydeevneaspekter af moderne parallelle computersystemer.
  • måle ydeevnen af parallele programmer og computersystemer.
  • forklare performance-påvirkningen af hukommelseshierarkiet.
  • forklare hvilke dele af et computersystem, der påvirker ydeevnen for et givent program.
  • identificere for et givet program flaskehalse for ydeevne i et computersystem.
Kursusindhold
Computer systemer: multi-core systemer; distribuerede systemer; cache og
hukommelseshierarki effekter; måling af ydeevne.

Programmeringsparadigmer: "message passing"; delt hukommelse.

Tråd og proces synkronisering: asynkron og synkron "message passing";
interproceskommunikation; gensidig udelukkelse; kapløb(race conditions).

Programeringsmønstre: fork-join; leader-follower.

Programmeringssystemer: MPI, OpenMP.
Sidst opdateret
02. maj, 2025