Detail předmětu
Praktické paralelní programování
PPP Ak. rok 2024/2025 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)
- 10 bodů půlsemestrální test (8 bodů písemná část, 2 bodů testová část)
- 30 bodů projekty
Zajišťuje ústav
Přednášející
Cvičící
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čů.
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 Anselm a Salomon.
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.
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.
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í.
- 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.
Osnova počítačových cvičení
- 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í
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.
- 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í
Rozvrh
Den | Typ | Týdny | Místn. | Od | Do | Kapacita | PSK | Skup | Info |
---|---|---|---|---|---|---|---|---|---|
Po | přednáška | 1., 2., 3., 4., 5., 6., 7., 9., 10., 11., 12., 13. výuky | D0206 | 11:00 | 12:50 | 154 | 1MIT 2MIT | NBIO NEMB NHPC xx | Jaroš |
Po | přednáška | 2025-03-31 | E104 | 11:00 | 12:50 | 154 | 1MIT 2MIT | NBIO NEMB NHPC xx | Jaroš |
St | poč. lab | výuky | O204 | 08:00 | 09:50 | 20 | 1MIT 2MIT | xx | Jaroš |
Čt | poč. lab | výuky | O204 | 14:00 | 15:50 | 20 | 1MIT 2MIT | xx | Jaroš |
Pá | poč. lab | výuky | O204 | 08:00 | 09:50 | 20 | 1MIT 2MIT | xx | Jaroš |
Pá | poč. lab | výuky | O204 | 10:00 | 11:50 | 20 | 1MIT 2MIT | xx | Jaroš |
Zařazení předmětu ve studijních plánech
- 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, NEMB do 2023/24, 2. ročník, povinný
- Program MITAI, obor NHPC, 1. ročník, povinný