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 distribuerede og
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" og 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
03. januar, 2022