|
Vyučující
|
-
Michalíček Petr, Ing.
-
Hrbek Václav, Ing.
-
Brandejský Tomáš, doc. Ing. Dr.
|
|
Obsah předmětu
|
Hardware pro vyšší výkon: vektorové procesory, multiprocesorové systémy, vícejádrové procesory, clustery, gridy, paměťové architektury UMA, NUMA. Vzory paralelního programování, vícevláknové aplikace, masivně paralelní aplikace, jádra, komunikace mezi procesy, race conditions Paralelní algoritmy Programování se sdílenou pamětí - úvod do OpenMP, synchronizace paraleních úloh, Amhdalův zákon. OpenMP Beowulf clustery MPI, UMA versus NUMA MPI komunikace mezi proces Superpočítače, PBSpro plánovač, případně plánovač SLURM (podobně jako na systémech v IT4I a dalších superpočítačích) Vektorové procesory, multimediální instrukce na standardních procesorech, GPGPU Sdílení disků, distribuované souborové systémy, specielní síťové architektury. CUDA a OpenCL, ACC, Parallel Patterns Library MOSIX, PGAS koncept a jazyk Cray Chapel BOINC a obdobné technologie na gridech Cvičení: Obsah cvičení sleduje bezprostředně obsah přednášek.
|
|
Studijní aktivity a metody výuky
|
Monologická (výklad, přednáška, instruktáž), Demonstrace, Nácvik dovedností
- Semestrální práce
- 46 hodin za semestr
- Domácí příprava na výuku
- 26 hodin za semestr
- Kontaktní výuka
- 26 hodin za semestr
- Praktická výuka
- 26 hodin za semestr
- Příprava na zkoušku
- 26 hodin za semestr
|
|
Výstupy z učení
|
Cílem předmětu je seznámit studenty se základními paralelními HW architekturami a pro ně vhodnými přístupy k paralelnímu programování, jejich možnostmi a omezeními. Seznámí se s paralelismem instrukcí a paralelismem dat a jejich využitím na běžných vícejádrových procesorech, grafických kartách a clusterech, stejně jako s programováním na grafických kartách. V předmětu se seznámíme s vlivem tzv. granulace úloh - potřeby vzájemné komunikace jednotlivých vláken úlohy a s tomu odpovídajícími HW i SW prostředky, vývojovými nástroji, jazyky, knihovnami. Protože pro výuku bude k dispozici vlastní cluster, bude možno provádět i např. experimenty s nastavením plánovače pro sledování jeho vlivu na běh úloh, měnit rychlost interní sítě a pod.
Po absolvování předmětu bude student způsobilý vytvářet programy pro základní paralelní HW architektury, bude znát základní přístupy paralelního programování, jejich možnosti a omezení. Především se seznámí s knihovnou OpenMP a z ní vycházejícími knihovnami, jako je podpora paralelního programování v posledních verzích C++ v17 a v20. Studenti se seznámí i s knihovnou MPI, která je základem paralelního programování na výpočetních clusterech. Rovněř se seznámí programování grafických karet především v prostředí CUDA a novým sjednoceným přístupům jako je jazyk Chapel vyvinutý firmou Cary/HPE.
|
|
Předpoklady
|
Základní znalost programování a algoritmizace.
|
|
Hodnoticí metody a kritéria
|
Písemná zkouška, Posouzení zadané práce, Obhajoba vlastního projektu
Požadavkem na zápočet je účast na cvičeních s povolenou nepřítomností na max. 2 a vypracování praktické úlohy. Zkouška z předmětu bude především písemná s vyhodnocením zadané praktická práce. V praktické práci student vyřeší zadaný problém z oblasti návrhu paralelních systémů v prostředí OpenMP, MPI nebo CUDA.
|
|
Doporučená literatura
|
-
PACECHO, Peter. An Introduction to Parallel Programming. Morgan Kaufmann, 201. ISBN 978-0123742605.
|