Detail předmětu

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

FIT-ARCAk. rok: 2018/2019

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.

Výsledky učení 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.

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

Von Neumannova architektura počítače, paměťová hierarchie, paměti cache a jejich organizace, programování v JSI a v C/C++.

Doporučená nebo povinná literatura


  • 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 


Způsob a kritéria hodnocení

Získání 20 ze 40 bodů za projekty a půlsemestrální písemku.

Jazyk výuky

čeština

Osnovy výuky

    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.

Cíl

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ě.

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ý
    obor MPV , 1. ročník, letní semestr, 5 kreditů, povinný
    obor MSK , 1. ročník, letní semestr, 5 kreditů, povinný

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Osnova


  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í.

Cvičení na poč.

12 hod., nepovinná

Vyučující / Lektor

Osnova

  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

Projekty

14 hod., nepovinná

Vyučující / Lektor