Detail předmětu
Praktické paralelní programování
FIT-PPPAk. rok: 2019/2020
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
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
Literatura
http://mpitutorial.com/
http://www.cs.kent.edu/~jbaker/ParallelProg-Sp11/
https://pages.tacc.utexas.edu/~eijkhout/pcse/html/
Pacecho, P.: Introduction to Parallel Programming. Morgan Kaufman Publishers, 2011, 392 s., ISBN: 9780123742605
Hennessy, J.L., Patterson, D.A.: Computer Architecture - A Quantitative Approach. 5. vydání, Morgan Kaufman Publishers, Inc., 2012, 856 s., ISBN: 9780123838728
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.
Jazyk výuky
Cíl
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 alternativní termín (pondělí nebo pátek)
- V poslední týdnu semestru budou probíhat náhradní civčení
Zařazení předmětu ve studijních plánech
- Program IT-MGR-2 magisterský navazující
obor MBS , libovolný ročník, letní semestr, 5 kreditů, volitelný
obor MBI , libovolný ročník, letní semestr, 5 kreditů, povinně volitelný
obor MIS , libovolný ročník, letní semestr, 5 kreditů, volitelný
obor MIN , libovolný ročník, letní semestr, 5 kreditů, volitelný
obor MMM , libovolný ročník, letní semestr, 5 kreditů, volitelný
obor MGM , libovolný ročník, letní semestr, 5 kreditů, povinně volitelný - Program MITAI magisterský navazující
specializace NBIO , libovolný ročník, letní semestr, 5 kreditů, povinný
specializace NISD , libovolný ročník, letní semestr, 5 kreditů, volitelný
specializace NISY , libovolný ročník, letní semestr, 5 kreditů, volitelný
specializace NIDE , libovolný ročník, letní semestr, 5 kreditů, volitelný
specializace NCPS , libovolný ročník, letní semestr, 5 kreditů, volitelný
specializace NSEC , libovolný ročník, letní semestr, 5 kreditů, volitelný
specializace NMAT , libovolný ročník, letní semestr, 5 kreditů, volitelný
specializace NGRI , libovolný ročník, letní semestr, 5 kreditů, volitelný
specializace NNET , libovolný ročník, letní semestr, 5 kreditů, volitelný
specializace NVIZ , libovolný ročník, letní semestr, 5 kreditů, volitelný
specializace NSEN , libovolný ročník, letní semestr, 5 kreditů, volitelný
specializace NMAL , libovolný ročník, letní semestr, 5 kreditů, volitelný
specializace NVER , libovolný ročník, letní semestr, 5 kreditů, volitelný
specializace NADE , libovolný ročník, letní semestr, 5 kreditů, volitelný
specializace NSPE , libovolný ročník, letní semestr, 5 kreditů, volitelný - Program IT-MGR-2 magisterský navazující
obor MPV , 1. ročník, letní semestr, 5 kreditů, povinný
obor MSK , 1. ročník, letní semestr, 5 kreditů, povinný - Program MITAI magisterský navazující
specializace NHPC , 1. ročník, letní semestr, 5 kreditů, povinný
specializace NEMB , 2. ročník, letní semestr, 5 kreditů, povinný
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
- Ukazatele a zákony paralelního zpracování.
- Architektury se zasíláním zpráv, současné superpočítačové systémy.
- Topologie propojovacích sítí, směrovací algoritmy, přepínání, řízení toku.
- Technologie HPC sítí (Infiniband).
- Distribuované souborové systémy (Lustre, HPFS).
- Zasílání zpráv MPI, párové komunikace, datové typy.
- MPI kolektivní komunikace a komunikátory.
- Hybridní programování OpenMP/MPI a jednostranné komunikace.
- Knihovny pro paralelní výpočty, nástroje pro profilování a trasování aplikací.
- Programovací vzory pro paralelní programování.
- Případové studie: maticové výpočty, řešení systémů lin. rovnic (Gauss, Jordan, Jaccobi).
- Případové studie: řešení diferenciálních rovnic (FDTD, spektrální metody, FEM/BEM).
- Případové studie: Dynamika kapalin (Lattice-Boltzmann), N-Body simulace, Monte-Carlo.
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, redukce.
- MPI: Paralelní vstup výstup.
- Profilování a trasování paralelních aplikací.
- Maticové výpočty (Transpozice, Gaussova eliminace).
- Metody konečných diferencí
Projekt
Vyučující / Lektor
Osnova
- Vývoj paralelní program v MPI superpočítači.