Overordnede kursusmål
Python kan være et kraftfuldt sprog til at tackle store
beregningsproblemer inden for scientific computing og relaterede
domæner, når det kombineres med specialiserede moduler, såsom NumPy
til numeriske og videnskabelige beregninger og MPI4Py til at
skalere ud til klynger af computere. Det er dog ikke trivielt at
forstå, hvordan man får god performance, når man bruger disse
moduler. Dette kursus sigter mod at udvikle de nødvendige
færdigheder til at udnytte den potentielle processorkraft på
moderne computerklynger og -arkitekturer.
Dette kursus bygger på de færdigheder fra kurserne 02613 eller
02614. Det giver et overblik over eksisterende software, metoder og
værktøjer til stor-skala modellering, og sætter de studerende i
stand til at arbejde med stor-skala problemer i Scientific
Computing, samt deres implementering på moderne computerklynger.
Den opnåede viden skal bruges i projektarbejde til at modellere
store systemer i form af nogle udvalgte eksempler.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
- analysere performance af Scientific Computing problemer
- udvikle parallelle programmer med MPI og Python
- designe og skrive parallelle koder for Scientific Computing
problemer
- anvende HPC metoder i modellering af store systemer
- bruge værktøjer og biblioteker for at løse et problem
- finde strategier til at gå fra små til store problemer
- designe, udføre og evaluere computereksperimenter
- anvende validerings teknikker
Kursusindhold
Introduktion til højtydende computere med vægt på de aspekter der
bestemmer computerens ydeevne ved numeriske beregninger på store
datasæt/stor-skala problemer.
Brug af message passing paradigmet (MPI) i Python: point-to-point
og kollektiv kommunikation, non-blocking kommunikation,
kommunikatorer, virtuelle topologier og one-sided kommunikation.
Hands-on og eksperimenter til at lokalisere beregnings- og
kommunikationsflaskehalse.
Numeriske metoder for stor-skala beregninger, fx hvordan man finder
en optimal opdeling til data.
Anvendelse af ovenstående på relevante modeller der kræver mange
computerressourcer, som fx hukommelse, beregningstid, osv. Bemærk:
metoderne der bruges i dette kursus er generelt ikke anvendelige på
ML/AI problemer!
Bemærkninger
Implementering af programmer i Python, samt anvendelse af HPC
systemer, udgør en væsentlig del af kurset. Kontakt venligst den
kursusansvarlige for at høre mere om forudsætninger.
Undervisningsmaterialet består af udleverede noter.
Kurset omhandler modellering og samspillet mellem modellen og
metoderne indenfor HPC.
Kurset henvender sig til studerende fra alle master programmer.
Sidst opdateret
02. maj, 2024