Fremkomsten af effektive multi-core computere har givet forskere muligheder for at udføre komplicerede simuleringer på økonomisk overkommeligt hardware, men kun få af anvendelserne udnytter mulighederne tilstrækkeligt godt. Dette skyldes mangel på viden og erfaring i at skrive effektive programmer til high-performance computere med moderne arkitekturer. Dette kursus giver en introduktion til de færdigheder, der kræves for at udnytte mulighederne i high-performance computing. Det giver viden om organisering og analyse af software og præsenterer metoder og værktøjer til dette. Kurset sætter deltagerne i stand til at arbejde med stor-skala problemer i Scientific Computing og deres implementering på moderne cache-baserede multi-core/multi-CPU computere.
Læringsmål:
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
forstå de fundamentale byggeklodser af moderne cache-baserede computer systemer
forstå vekselvirkning mellem komponenter som CPU, caches og memory
analysere Scientific Computing problemer
bruge moderne programmeringsværktøjer
anvende optimeringsteknikker på eksisterende koder
skelne mellem forskellige computer arkitekturer
vælge den optimale hardware-platform for en opgave
designe og skrive parallelle koder for Scientific Computing problemer
skrive parallelle programmer med OpenMP
skrive effektive koder til multi-kerne maskiner
bruge moderne værktøjer til parallelprogrammering
Kursusindhold:
Introduktion til højtydende computere med vægt på de aspekter der bestemmer computerens ydeevne ved numeriske beregninger på store datasæt. Parallelle computere: arkitektur og netværk, med vægt på multi-kerne og SMP computere. Parallel-programmering med OpenMP.
Bemærkninger:
Programmering og implementering udgør en væsentlig del af kurset. Kontakt venligst den kursusanvarlige for at høre mere om forudsætninger. Undervisningsmaterialet består af udleverede noter. Kurset henvender sig til studerende fra alle master programmer, og emnerne uddybes i 02627 Videregående HPC.