02346 Distribuerede og parallelle systemer

2024/2025

Kursusinformation
Distributed and Parallel Systems
Dansk
5
Diplomingeniør
Obligatorisk kursus (B Eng), Softwareteknologi
OObligatorisk kursus (B Eng), IT-elektronik
F4A (tirs 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 kan foregå på engelsk.
13-uger
F4A
Skriftlig eksamen
Skriftlig eksamen: 4 timer
Skriftlige hjælpemidler er tilladt :

Lommeregner er ikke tilladt.

7-trins skala , ekstern censur
02347
0234702258
01901.­(02322/(023200232162557)).­023260233262588 , 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. Det kræves også at studerende har erfaring med execution platforms og mapping fra høj-niveau programmeringssprog til lav-niveaus instruktioner. Endelig kræves det at studerende er i stand til at implementere hash-maps og binære søgetræer.
Sven Karlsson , 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 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.

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.

Endelig vil distribuerede systemer bestående af et sæt af samarbejdende processer eller maskiner blive studeret. Målet er, at studerende vil blive i stand til at implementere små distribuerede systemer ved at bruge og forstå almindelige koordinations- og kommunikationsmetoder.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
  • anvende viden om et antal af almindelige kommunikations- og koordinationsløsninger til at løse nye problemer.
  • forklare performance-påvirkningen af hukommelseshierarkiet.
  • skrive små distribuerede- og parallelprogrammer ved hjælp af industristandard parallelprogrammeringssystemer.
  • beskrive vigtige karakteristika af distribuerede systemer og de fremtrædende arkitektoniske træk ved sådanne systemer.
  • bruge synkroniseringsmekanismer til at skrive race-free programmer.
  • beskrive særtræk og applikationer for vigtige standard "message passing" protokoller, som er brugt i distribuerede systemer.
  • måle ydeevnen af distribuerede og parallele programmer og computersystemer.
  • identificere ydeevne-flaskehalse i computersystemer.
Kursusindhold
Computer systemer: multi-core systemer; distribuerede systemer; cache og
hukommelseshierarki effekter; måling af ydeevne.

Programmeringsparadigmer: Paradigmer for distribuerede systemer inklusiv
"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; master-slave; client-server paradigme.

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