Název:

Architektura a programování paralelních systémů

Zkratka:ARC
Ak.rok:2017/2018
Semestr:letní
Studijní plán:
ProgramOborRoč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-2MMI-povinně volitelný - skupina C
IT-MGR-2MMM-volitelný
IT-MGR-2MPV1.povinný
IT-MGR-2MSK1.povinný
Vyučovací jazyk:čeština
Kredity:5 kreditů
Ukončení:zápočet+zkouška (písemná)
Výuka:
hod./sempřednáškasem./cvičenílab. cvičenípoč. cvičeníjiná
Rozsah:26001214
 zkouškatestycvičenílaboratořeostatní
Body:60100030
Garant:Jaroš Jiří, Ing., Ph.D., UPSY
Přednášející:Jaroš Jiří, Ing., Ph.D., UPSY
Cvičící:Čudová Marta, Ing., UPSY
Jaroš Jiří, Ing., Ph.D., UPSY
Nikl Vojtěch, Ing., UPSY
Fakulta:Fakulta informačních technologií VUT v Brně
Pracoviště:Ústav počítačových systémů FIT VUT v Brně
Nahrazuje:
Architektury počítačů (ARP), UPSY
Praktické paralelní programování (PPP), UPSY
Rozvrh:
DenVýukaTýdenMístnostOdDoPSKSk-odSk-do
PopřednáškavýukyD020708:0009:501MIT17 MPV17 MPV
PopřednáškavýukyD020708:0009:501MIT18 MSK18 MSK
PopřednáškavýukyD020708:0009:502MITxxxx
Popoč. labvýukyO20410:0011:501MITxxxx
Popoč. labvýukyO20410:0011:502MITxxxx
Popoč. labvýukyO20412:0013:501MITxxxx
Popoč. labvýukyO20412:0013:502MITxxxx
Popoč. labvýukyO20414:0015:501MITxxxx
Popoč. labvýukyO20414:0015:502MITxxxx
poč. labvýukyO20410:0011:501MITxxxx
poč. labvýukyO20410:0011:502MITxxxx
 
Cíle předmětu:
  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 aplikaci. Seznámit se s nejdůležitějšími prostředky paralelního programování (MPI, OpenMP), naučit se je prakticky používat a řešit problémy paralelně.
Anotace:
  Předmět pokrývá architekturu i programování 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ásleduje výklad programování systémů se sdílenou pamětí v prostředí OpenMP a popis nejrozšířenějších mnoho-jádrových multiprocesorů SMP i pokročilých systémů DSM NUMA. Pokračuje výklad programování pro systémy se zasíláním zpráv ve standardizovaném rozhraní MPI. Propojovací sítě jsou probrány samostatně a po té jejich uplatnění ve svazcích, mnoho-jádrových čipech i v nejvýkonnějších systémech.
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++.
Získané dovednosti, znalosti a kompetence z předmětu:
  Přehled principů výstavby paralelních systémů a propojovacích sítí, schopnost odhadnout výkonnost paralelních aplikací. Přehled o možnostech paralelizace základních technických úloh, znalost paralelního programování v MPI a v OpenMP. 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.
Osnova přednášek:
 
  1. Úvod do paralelního zpracování.
  2. Vzory pro paralelní programování.
  3. Programování se sdílenou pamětí - úvod do OpenMP.
  4. Synchronizace nejen v OpenMP, analýza výkonnosti. 
  5. Sdílená paměť a koherence pamětí cache.
  6. Komponenty symetrických multiprocesorů.
  7. Architektury CC-NUMA DSM.
  8. Rozhraní zasílání zpráv MPI.
  9. Kolektivní komunikace, komunikátory a diskové operace. 
  10. Propojovací sítě: topologie a směrovací algoritmy.
  11. Propojovací sítě: přepínání, řízení toku, zpracování zpráv a výkonnost.
  12. Architektury se zasíláním zpráv, současné super-počítačové systémy. Distribuované souborové systémy.
  13. Datově paralelní architektury a programování.
Osnova počítačových cvičení:
 
  1. Práce se superpočítačem Anselm a Salomon
  2. Paralelní debuggery, profilery a tracery
  3. Paralelizace na systémech se sdílenou pamětí: smyčky, sekce
  4. Paralelizace na systémech se sdílenou pamětí: tasky, zámky
  5. Paralelizace na systémech s distribuovanou pamětí: párové komunikace
  6. Paralelizace na systémech s distribuovanou pamětí: Kolektivní komunikace
Osnova ostatní - projekty, práce:
 
  • Vývoj aplikace na SMP v OpenMP na NUMA uzlu superpočítače.
  • 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í:
 
Průběžná kontrola studia:
  Dva projekty v celkovém rozsahu 26 hodin; půlsemestrální písemka.
Podmínky zápočtu:
  Pro udělení zápočtu a připuštění ke zkoušce je třeba během semestru získat 20 bodů ze 40 možných.