Detail předmětu
Praktické paralelní programování
PPP Ak. rok 2021/2022 letní semestr 5 kreditů
Předmět pokrývá architekturu i programování distribuovaných paralelních systémů s funkčním a datovým paralelismem. Nejdříve je pojednáno o teorii paralelních systémů a paralelizaci programů. Následně je detailně rozebrána architektura současných superpočítačových systémů, topologií propojovacích síta směrovacích algoritmů. Dále jsou studovány paralelní a distribuované souborové systémy. Pokračuje výklad programování pro systémy se zasíláním zpráv ve standardizovaném rozhraní MPI. Následují ukázky základních profilovacích nástrojů pro paralelní aplikace a vyhodnocení získaných výkonnostních metrik. Předmět se dále věnuje základním programovým vzorům pro tvorbu paralelních aplikací a případovým studií z oblasti lineární algebry, řešení problémů popsaných parciálními diferenciálními rovnicemi, N-Body systémům, a Monte-Carlo metodám.
Garant předmětu
Koordinátor předmětu
Jazyk výuky
Zakončení
Rozsah
- 26 hod. přednášky
- 16 hod. pc laboratoře
- 10 hod. projekty
Bodové hodnocení
- 60 bodů závěrečná zkouška (písemná část)
- 15 bodů půlsemestrální test (písemná část)
- 25 bodů projekty
Zajišťuje ústav
Přednášející
Cvičící
Získané dovednosti, znalosti a kompetence z předmětu
Přehled architektur současných superpočítačových systémů, jejich možností a budoucích trendů. Schopnost vyhodnotit efektivitu softwarových aplikací na daném výpočetním systému, identifikovat výkonnostní problémy a navrhnout jejich nápravu. Znalosti základních programových vzorů vysoce náročných aplikací. Praktické zkušenosti s prací na superpočítačích Barbora a Karolina.
Znalost možností a omezení paralelního zpracování, schopnost odhadnout výkonnost paralelních aplikací. Jazyková výbava pro komunikaci a synchronizaci procesů/vláken. Kompetence v technických a programových prostředcích pro náročné vědecké výpočty a simulace.
Cíle předmětu
Seznámit se s architekturou distribuovaných superpočítačových systémů, jejich propojovacími sítěmi a úložištěm dat. Orientovat se v nabídce paralelních systémů, umět posoudit komunikační a výpočetní možnosti konkrétní architektury a predikovat výkonnost paralelních aplikací. Naučit se psát přenositelné programy pomocí standardizovaných rozhraní, jazyků a knihoven, zapisovat paralelismus a komunikaci procesů. Naučit se je prakticky používat a řešit problémy s využitím superpočítačů.
Proč je předmět vyučován
Tento předmět Vás zavede do oblasti, kde jeden počítač ani zdaleka nestačí pro řešení daného problému. Jedinou možností je pak rozdělit práci na několik strojů a zajistiti jejich vzájemnou komunikaci a synchronizaci. Pro tyto účely si podrobně představíme knihovnou MPI, kterou budeme následně zkoušet na superpočítači Salomon. Aby naše kódy dobře šlapaly, nahlédneme i pod kapotu těchto stojů a seznámíme se s architekturou uzlů a propojovacích sítí. V rámci předmětu si představíme i několik typických problémů z oblasti vysoce náročného počítání, např. fyzikální simulace síření tepla, dynamiku kapalin, gravitační působení galaxií nebo sbalování proteinů, nebo Monte-Carlo metody pro simulaci síření světla. V rámci výkladu si ukážeme zajímavé knihovny z dané oblasti.
Požadované prerekvizitní znalosti a dovednosti
Von Neumannova architektura počítače, paměťová hierarchie, paměti cache a jejich organizace, programování v JSI a v C/C++. Dále znalosti z kurzů PRL a AVS.
Technické vybavení
Výuka probíhá na superpočítačích Barbora a Karolina v centru IT4Innovations.
Literatura studijní
- MPI Tutoriál: http://mpitutorial.com/
- Alternativní kurz o paralelním programování http://www.cs.kent.edu/~jbaker/ParallelProg-Sp11/
Literatura referenční
- Aktuální PPT prezentace přednášek v systému Moodle
- Pacecho, P.: Introduction to Parallel Programming. Morgan Kaufman Publishers, 2011, 392 s., ISBN: 9780123742605 URL: download
- Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar: Introduction to Parallel Computing, Addison-Wesley, 2003, 978-0201648652.Slides: download
- Victor Eijkhout: Parallel Programming in MPI and OpenMP Full book: download web version: https://theartofhpc.com/pcse/
- William Gropp, Ewing Lusk, Anthony Skjellum: Using MPI - 2nd Edition: Portable Parallel Programming with the Message Passing InterfaceUsing MPI - 2nd Edition: Portable Parallel Programming with the Message Passing Interface, MIT Press, 978-0262571326
- Hennessy, J.L., Patterson, D.A.: Computer Architecture - A Quantitative Approach. 5. vydání, Morgan Kaufman Publishers, Inc., 2012, 1136 s., ISBN 1-55860-596-7.
Osnova přednášek
- Ukazatele a zákony paralelního zpracování.
- Metodika tvorby paralelních programů.
- Knihovna MPI: Párové komunikace.
- Knihovna MPI: Kolektivní komunikace.
- Knihovna MPI: Komunikátory a topologie.
- Knihovna MPI: Datové typy.
- Knihovna MPI: Jednostranné komunikace.
- Distribuované souborové systémy a MPI-IO
- Knihovny pro paralelní vstup a výstup.
- Analýza výkonnosti paralelních aplikací.
- Případové studie paralelních aplikací (násobení matic, BLAS).
- Případové studie paralelních aplikací (Jacobi iterační metoda, metody konečných diferencí).
- Topologie propojovacích sítí, směrovací algoritmy, přepínání, řízení toku.
Osnova počítačových cvičení
- MPI: Point-to-point komunikace.
- MPI: Kolektivní komunikace.
- MPI: Komunikátory.
- MPI: Datové typy.
- MPI: Jednostranné komunikace
- MPI: vstup a výstup pomocí MPI-IO
- MPI: vstup a výstup pomocí HDF5
- Profilování a trasování
Osnova ostatní - projekty, práce
- Vývoj paralelní program v MPI superpočítači.
Průběžná kontrola studia
Vyhodnocení projektu v celkovém rozsahu 10 hodin, půlsemestrální písemka.
Kontrolovaná výuka
- Zameškaná cvičení je možné nahradit v alternativní termín (pondělí nebo pátek)
- V poslední týdnu semestru budou probíhat náhradní civčení
Podmínky zápočtu
Získání 20 ze 40 bodů za projekty a půlsemestrální písemku. Minimálně 1 bod z projektu.
Zařazení předmětu ve studijních plánech
- Program IT-MGR-2, obor MBI, MGM, libovolný ročník, povinně volitelný skupina C
- Program IT-MGR-2, obor MBS, MIN, MIS, MMM, libovolný ročník, volitelný
- Program IT-MGR-2, obor MPV, MSK, 1. ročník, povinný
- Program MITAI, obor NADE, NCPS, NGRI, NIDE, NISD, NISY, NISY do 2020/21, NMAL, NMAT, NNET, NSEC, NSEN, NSPE, NVER, NVIZ, libovolný ročník, volitelný
- Program MITAI, obor NBIO, libovolný ročník, povinný
- Program MITAI, obor NEMB, 2. ročník, povinný
- Program MITAI, obor NHPC, 1. ročník, povinný