Detail předmětu
Praktické paralelní programování
FIT-PPPAk. rok: 2020/2021
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.
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
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.
Prerekvizity
Způsob a kritéria hodnocení
Podmínky zápočtu:
Získání 20 ze 40 bodů za projekty a půlsemestrální písemku.
Učební cíle
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
- Zameškaná cvičení je možné nahradit v individuálním termínu (nebo shlédnutím záznamů z MS Teams)
- V poslední týdnu semestru budou probíhat náhradní cvičení
- Pro získání bodů ze závěrečné semestrální zkoušky je nutné tuto zkoušku složit tak, aby byla hodnocena nejméně 20 body. V opačném případě bude zkouška hodnocena 0 body.
Základní literatura
Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar: Introduction to Parallel Computing, Addison-Wesley, 2003, 978-0201648652.Slides: download
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.
Pacecho, P.: Introduction to Parallel Programming. Morgan Kaufman Publishers, 2011, 392 s., ISBN: 9780123742605 URL: 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
Doporučená literatura
MPI Tutoriál: http://mpitutorial.com/
Zařazení předmětu ve studijních plánech
- Program IT-MGR-2 magisterský navazující
obor MGM , 0 ročník, letní semestr, povinně volitelný
obor MBI , 0 ročník, letní semestr, povinně volitelný
obor MBS , 0 ročník, letní semestr, volitelný
obor MIN , 0 ročník, letní semestr, volitelný
obor MIS , 0 ročník, letní semestr, volitelný
obor MMM , 0 ročník, letní semestr, volitelný
obor MPV , 1 ročník, letní semestr, povinný
obor MSK , 1 ročník, letní semestr, povinný - Program MITAI magisterský navazující
specializace NISY , 0 ročník, letní semestr, volitelný
specializace NADE , 0 ročník, letní semestr, volitelný
specializace NBIO , 0 ročník, letní semestr, povinný
specializace NCPS , 0 ročník, letní semestr, volitelný
specializace NEMB , 2 ročník, letní semestr, povinný
specializace NHPC , 1 ročník, letní semestr, povinný
specializace NGRI , 0 ročník, letní semestr, volitelný
specializace NIDE , 0 ročník, letní semestr, volitelný
specializace NISD , 0 ročník, letní semestr, volitelný
specializace NMAL , 0 ročník, letní semestr, volitelný
specializace NMAT , 0 ročník, letní semestr, volitelný
specializace NNET , 0 ročník, letní semestr, volitelný
specializace NSEC , 0 ročník, letní semestr, volitelný
specializace NSEN , 0 ročník, letní semestr, volitelný
specializace NSPE , 0 ročník, letní semestr, volitelný
specializace NVER , 0 ročník, letní semestr, volitelný
specializace NVIZ , 0 ročník, letní semestr, volitelný
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
- 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.
Cvičení na počítači
Vyučující / Lektor
Osnova
- 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í
Projekt
Vyučující / Lektor
Osnova
- Vývoj paralelní program v MPI superpočítači.