Detail předmětu

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

FIT-ARCAk. rok: 2013/2014

Předmět pokrývá architekturu i programování paralelních systémů s fukč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. Závěrem je pojednáno o akcelerátorech SIMD a o GPGPU.

Jazyk výuky

čeština

Počet kreditů

5

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. Použití akcelerátorů SIMD a GPGPU.

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

Plánované vzdělávací činnosti a výukové metody

Výuka předmětu je realizována formou: Přednáška - 3 vyučovací hodiny týdně, Projekty - 1 vyučovací hodina týdně.

Způsob a kritéria hodnocení

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.

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 a povědomí o výkonnosti v OpenMP
    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
    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
    13. Datově paralelní architektury a programování

    Osnova numerických cvičení:
    Numerická cvičení u předmětu nejsou plánována.
    Osnova ostatní - projekty, práce:
    • Predikce výkonnosti zadané paralelní aplikace na svazku počítačů. 
    • Vývoj aplikace na SMP v OpenMP.
    • Paralelní program v MPI na svazku blades.

Učební cíle

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

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

Tři malé projekty v rozsahu 5, 4 a 4 hodin ; půlsemestrální písemka.

Základní 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 

Doporučení literatura

Zařazení předmětu ve studijních plánech

  • Program IT-MGR-2 magisterský navazující

    obor MBS , 0 ročník, letní semestr, volitelný
    obor MIN , 0 ročník, letní semestr, volitelný
    obor MIS , 0 ročník, letní semestr, volitelný
    obor MMI , 0 ročník, letní semestr, povinně volitelný
    obor MMM , 0 ročník, letní semestr, volitelný
    obor MPV , 1 ročník, letní semestr, povinný
    obor MBI , 0 ročník, letní semestr, povinně volitelný
    obor MGM , 0 ročník, letní semestr, povinně volitelný
    obor MSK , 1 ročník, letní semestr, povinný

Typ (způsob) výuky

 

Přednáška

39 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 a povědomí o výkonnosti v OpenMP
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
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 s distribuovanou pamětí
13. Datově paralelní architektury a programování

Projekt

13 hod., nepovinná

Vyučující / Lektor