Název: | Aplikace paralelních počítačů |
---|
Zkratka: | PDD |
---|
Ak.rok: | 2018/2019 |
---|
Semestr: | zimní |
---|
Studijní plán: | |
---|
Vyučovací jazyk: | čeština |
---|
Ukončení: | zkouška (kombinovaná) |
---|
Výuka: | hod./sem | přednáška | sem./cvič. | lab. cvič. | poč. cvič. | jiná |
---|
Rozsah: | 39 | 0 | 0 | 0 | 0 |
---|
| zkouška | testy | cvičení | laboratoře | ostatní |
---|
Body: | 100 | 0 | 0 | 0 | 0 |
---|
|
---|
Garant: | Jaroš Jiří, doc. Ing., Ph.D. (UPSY) |
---|
Přednášející: | Jaroš Jiří, doc. Ing., Ph.D. (UPSY) |
Fakulta: | Fakulta informačních technologií VUT v Brně |
---|
Pracoviště: | Ústav počítačových systémů FIT VUT v Brně |
---|
Prerekvizity: | |
---|
|
Cíle předmětu: |
---|
| | Vysvětlit možnosti paralelního programování na vícejádrových procesorech, na svazcích počítačů a na GPGPU. Získat přehled o technikách synchronizace a komunikace. Seznámit se s metodikou paralelizace a predikcí výkonnosti vybraných reálných aplikací, tvorbě správných programů a užití paralelních výpočtů v praxi.
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.
|
Anotace: |
---|
| | 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. |
Požadované prerekvizitní znalosti a dovednosti: |
---|
| | Typy paralelních počítačů, programování v C/C++, základní numerické metody |
Získané dovednosti, znalosti a kompetence z předmětu: |
---|
| | 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. |
Dovednosti, znalosti a kompetence obecné: |
---|
| | 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. |
Osnova přednášek: |
---|
|
- 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í
|
Literatura referenční: |
---|
|
- Pacecho, P.: Introduction to Parallel Programming. Morgan Kaufman Publishers, 2011, 392 s., ISBN: 9780123742605
- Kirk, D., and Hwu, W.: Programming Massively Parallel Processors: A Hands-on Approach, Elsevier, 2010, s. 256, ISBN: 978-0-12-381472-2
|
Literatura studijní: |
---|
| - http://www.cs.berkeley.edu/~demmel/cs267_Spr13/
|
Kontrolovaná výuka: |
---|
| | Obhajoba projektu, programového díla využívajícího některou variantu paralelního programování. 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. |
|