Název:

Praktické paralelní programování

Zkratka:PPP
Ak.rok:2019/2020
Semestr:letní
Studijní plán:
ProgramObor/
specializace
RočníkPovinnost
IT-MGR-2MBI-povinně volitelný - skupina C
IT-MGR-2MBS-volitelný
IT-MGR-2MGM-povinně volitelný - skupina C
IT-MGR-2MIN-volitelný
IT-MGR-2MIS-volitelný
IT-MGR-2MMM-volitelný
IT-MGR-2MPV1.povinný
IT-MGR-2MSK1.povinný
MITAINADE-volitelný
MITAINBIO-povinný
MITAINCPS-volitelný
MITAINEMB2.povinný
MITAINGRI-volitelný
MITAINHPC1.povinný
MITAINIDE-volitelný
MITAINISD-volitelný
MITAINISY-volitelný
MITAINMAL-volitelný
MITAINMAT-volitelný
MITAINNET-volitelný
MITAINSEC-volitelný
MITAINSEN-volitelný
MITAINSPE-volitelný
MITAINVER-volitelný
MITAINVIZ-volitelný
Vyučovací jazyk:čeština
Informace veřejné:http://www.fit.vutbr.cz/study/courses/PPP/public/
Kredity:5 kreditů
Ukončení:zápočet+zkouška (písemná)
Výuka:
hod./sempřednáškasem./cvič.lab. cvič.poč. cvič.jiná
Rozsah:26001610
 zkouškatestycvičenílaboratořeostatní
Body:60200020
Garant:Jaroš Jiří, doc. Ing., Ph.D. (UPSY)
Zástupce garanta:Kořenek Jan, doc. Ing., Ph.D. (UPSY)
Přednášející:Jaroš Jiří, doc. Ing., Ph.D. (UPSY)
Cvičící:Kadlubiak Kristián, Ing. (UPSY)
Kukliš Filip, Ing. (UPSY)
Fakulta:Fakulta informačních technologií VUT v Brně
Pracoviště:Ústav počítačových systémů FIT VUT v Brně
Rozvrh:
DenVýukaTýdenMístnostOdDoPSKSkupiny
PopřednáškavýukyD0207 08:0009:501MIT 2MIT MPV - MSK xx
Popoč. labvýukyO204 10:0011:501MIT 2MIT xx
Popoč. labvýukyO204 15:0016:501MIT 2MIT xx
Stpoč. labvýukyO204 08:0009:501MIT 2MIT xx
poč. labvýukyO204 08:0009:501MIT 2MIT xx
poč. labvýukyO204 10:0011:501MIT 2MIT xx
 
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čů.
Anotace:
  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. 
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.
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 Anselm a Salomon.
Dovednosti, znalosti a kompetence obecné:
  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.
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.
Osnova přednášek:
 
  1. Ukazatele a zákony paralelního zpracování.
  2. Architektury se zasíláním zpráv, současné superpočítačové systémy.
  3. Topologie propojovacích sítí, směrovací algoritmy, přepínání, řízení toku.
  4. Technologie HPC sítí (Infiniband).
  5. Distribuované souborové systémy (Lustre, HPFS).
  6. Zasílání zpráv MPI, párové komunikace, datové typy.
  7. MPI kolektivní komunikace a komunikátory.
  8. Hybridní programování OpenMP/MPI a jednostranné komunikace.
  9. Knihovny pro paralelní výpočty, nástroje pro profilování a trasování aplikací.
  10. Programovací vzory pro paralelní programování.
  11. Případové studie: maticové výpočty, řešení systémů lin. rovnic (Gauss, Jordan, Jaccobi).
  12. Případové studie: řešení diferenciálních rovnic (FDTD, spektrální metody, FEM/BEM).
  13. Případové studie: Dynamika kapalin (Lattice-Boltzmann), N-Body simulace, Monte-Carlo.
Osnova počítačových cvičení:
 
  1. MPI: Point-to-point komunikace.
  2. MPI: Kolektivní komunikace.
  3. MPI: Komunikátory.
  4. MPI: Datové typy, redukce.
  5. MPI: Paralelní vstup výstup.
  6. Profilování a trasování paralelních aplikací.
  7. Maticové výpočty (Transpozice, Gaussova eliminace).
  8. Metody konečných diferencí
Osnova ostatní - projekty, práce:
 
  • Vývoj paralelní program v MPI superpočítači.
Literatura referenční:
 
  • Hennessy, J.L., Patterson, D.A.: Computer Architecture - A Quantitative Approach. 5. vydání, Morgan Kaufman Publishers, Inc., 2012, 912 s., ISBN: 9780123747501 
  • Pacecho, P.: Introduction to Parallel Programming. Morgan Kaufman Publishers, 2011, 392 s., ISBN: 9780123742605 

Literatura studijní:
 
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í
Průběžná kontrola studia:
  Vyhodnocení projektu v celkovém rozsahu 10 hodin, půlsemestrální písemka.
Podmínky zápočtu:
  Získání 20 ze 40 bodů za projekty a půlsemestrální písemku.
 

Vaše IPv4 adresa: 54.210.158.163