Detail předmětu
Aplikace paralelních počítačů
FIT-PDDAk. rok: 2024/2025
Předmět podává přehled existujících použitelných paralelních platforem a modelů programování, zejména programování se sdílenou pamětí (OpenMP), zasíláním zpráv (MPI) a datově-paralelní programování (CUDA, OpenCL). Metodika paralelizace programů je doplněna studiem výkonnosti a aplikována na určitý konkrétní problém. Důraz je na praktických aspektech a implementaci.
Jazyk výuky
Garant předmětu
Zajišťuje ústav
Vstupní znalosti
Pravidla hodnocení a ukončení předmětu
Zkouška probíhá jako obhajoba malého projektu, nejlépe z oblasti, na kterou se doktorand chce zaměřit v disertační práci. Projekt by měl demonstrovat potřebné zvýšení výkonnosti při řešení konkrétního problému použitím clusteru, vícejádrového procesoru nebo GPU. Podle toho je třeba zvolit programování v OpenMPI, OpenMP nebo CUDA/OpenCL, popřípadě v nějakém dalším specializovaném jazyce.
Učební cíle
Okruhy otázek k SDZ:
- Ukazatele a zákony paralelního zpracování. Funkce konst. účinnosti a škálovatelnost.
- Paralelní zpracování v OpenMP, SPMD, smyčky, sekce a tasky. Synchronizační prostředky.
- Architektury se sdílenou pamětí, UMA i NUMA, zajištění koherence pamětí cache.
- Blokující a neblokující párové (point-to-point) komunikace v MPI.
- Kolektivní komunikace v MPI, paralellní vstup a výstup.
- Architektura superskalárních procesorů a algoritmy OOO zpracování instrukcí.
- Datový paralelismus SIMD a SIMT, HW implementace a SW podpora.
- Architektura grafických procesorů, odlišnosti od superskalárních procesorů.
- Programovací jazyk CUDA, model vláken a paměťový model.
Naučit se paralelizovat různé třídy úloh a predikovat jejich výkonnost. Umět využívat paralelismu a komunikace na úrovni vláken a procesů. Seznámit se s moderními standardními rozhraními, rozšířením jazyků a dalšími nástroji pro paralelní programování. Napsat a odladit paralelní program pro vybranou úlohu.
Paralelní architektury s distribuovanou a sdílenou pamětí, programování v C/C++ s MPI a OpenMP, GPGPU, paralelizace základních numerických metod.
Prerekvizity a korekvizity
- doporučená prerekvizita
Praktické paralelní programování
Doporučená literatura
David Patterson John Hennessy: Computer Organization and Design MIPS Edition, Morgan Kaufmann, 2013, s. 800, ISBN: 978-0-12-407726-3
Kirk, D., and Hwu, W.: Programming Massively Parallel Processors: A Hands-on Approach, Elsevier, 2017, s. 540, ISBN: 978-0-12-811986-0
Zařazení předmětu ve studijních plánech
- Program DIT doktorský 0 ročník, zimní semestr, povinně volitelný
- Program DIT doktorský 0 ročník, zimní semestr, povinně volitelný
- Program DIT-EN doktorský 0 ročník, zimní semestr, povinně volitelný
- Program DIT-EN doktorský 0 ročník, zimní semestr, povinně volitelný
- Program VTI-DR-4 doktorský
obor DVI4 , 0 ročník, zimní semestr, volitelný
- Program VTI-DR-4 doktorský
obor DVI4 , 0 ročník, zimní semestr, volitelný
- Program VTI-DR-4 doktorský
obor DVI4 , 0 ročník, zimní semestr, volitelný
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
- Architektury paralelních počítačů, ukazatele výkonnosti a predikce výkonnosti.
- Vzory paralelního programování
- Techniky synchronizace a komunikace.
- Programování se sdílenými proměnnými v OpenMP
- Programování zasíláním zpráv v MPI
- Datově paralelní programování v CUDA/OpenCL
- Příklady paralelizace úloh a paralelních aplikací