Overordnede kursusmål
Dette kursus udstyrer studerende med de væsentligste færdigheder
til effektivt at håndtere omfattende beregningsproblemer inden for
videnskabelig databehandling og beslægtede områder ved brug af
Python-programmeringssproget. Python er særligt kraftfuld, når det
kombineres med specialiserede moduler som NumPy til numeriske og
videnskabelige beregninger, men det at forstå, hvordan man udnytter
dets potentiale for højtydende databehandling (HPC), er ikke altid
ligetil. I mange anvendelser udnyttes den tilgængelige regnekraft
ikke fuldt ud på grund af manglende viden om implementering af
effektive programmer og arbejdsgange. Dette kursus adresserer dette
ved at give studerende en introduktion til HPC-metoder inden for
Python, hvilket gør det muligt for dem at implementere og udrulle
effektive løsninger på forskellig hardware fra personlige computere
til større HPC-installationer. Gennem dette kursus vil studerende
lære at udnytte Python og moderne computerarkitekturers fulde
potentiale til effektivt at tackle komplekse beregningsmæssige
udfordringer.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
- forklare fundamentale performance-aspekterne af moderne
multi-core computersystemer og GPU'er
- udnytte samspillet mellem hardware (CPU, GPU,
hukommelseshierarki og I/O) og softwarekomponenter (Python-kode,
biblioteker)
- analysere scientific computing problemer og implementere
effektive løsninger
- gøre brug af forskellige beregningsressourcer
- identificere performance-flaskehalse i Python-programmer
- forbedre performance af Python-programmer
- anvende paralleliseringsteknikker ved hjælp af Python
- udføre og dokumentere computereksperimenter (performance
målinger)
- evaluere performance og skalerbarhed af parallele
programmer
- bruge etablerede analytiske evalueringsmodeller, såsom modeller
for ressourceforbrug
Kursusindhold
Introduktion til high-performance computere med vægt på de
aspekter, der er vigtige i forbindelse med store beregningstunge
problemer.
Multi-core computere og GPU'er: introduktion til arkitektur med
vægt på anvendeligheden fra et high-level sprog som Python.
Værktøjer til at måle performance.
Brug af Python og relevante moduler.
Performance-udfordringer ved brug af Python-sproget.
Effektive numeriske beregninger med NumPy.
Parallel programmering med Python og optimerende sprogudvidelser.
GPU-programmering med Python.
Design af effektive arbejdsgange til at løse problemer på
forskellige platforme.
Brug af moderne HPC-installationer.
Bemærkninger
Programmering og implementering af Python-kode samt brug af
Linux-kommandolinjen er en væsentlig del af kurset.
Sidst opdateret
12. november, 2024