Detail předmětu
Architektura a programování paralelních systémů
ARC Ak. rok 2018/2019 letní semestr 5 kreditů
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.
Garant předmětu
Jazyk výuky
Zakončení
Rozsah
- 26 hod. přednášky
- 12 hod. pc laboratoře
- 14 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í
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.
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.
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ě.
Proč je předmět vyučován
Tento předmět vás zavede do oblasti, kde jedno procesorové jádro ani zdaleka nestačí pro řešení daného problému. Každý z nás máme minimálně 4 jádrový procesor, v serverech není výjimka mít 32 jader. Otázka je, jak ale všechna jádra efektivně využívat. Proto se rámci kurzu zaměříme na architektury výcejádrových systémů a všechny problémy spojené s rozdělením práce mezi více jader. Naučíme se velice efektivní knihovnu OpenMP, která pomocí několika jednoduchých příkazů umožní rozdělit náš problém na všechna procesorová jádra.
Co ale dělat v momentě, kdy ani ten nejlepší počítač nestačí na řešení dané úlohy (ať už nemá dostatek RAM nebo je prostě příliš pomalý)? Pak je jedinou možností 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í.
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++.
Literatura studijní
- current PPT slides for lectures
- http://dolores.sp.cs.cmu.edu/spring2013/
- http://www.cs.kent.edu/~jbaker/ParallelProg-Sp11/ 4.
- Pacecho, P.: Introduction to Parallel Programming. Morgan Kaufman Publishers, 2011, 392 s., ISBN: 9780123742605
- Hennessy, J.L., Patterson, D.A.: Computer Architecture - A Quantitative Approach. 5. vydání, Morgan Kaufman Publishers, Inc., 2012, 856 s., ISBN: 9780123838728
Osnova přednášek
- Úvod do paralelního zpracování.
- Vzory pro paralelní programování.
- Programování se sdílenou pamětí - úvod do OpenMP.
- Synchronizace nejen v OpenMP, analýza výkonnosti.
- Sdílená paměť a koherence pamětí cache.
- Komponenty symetrických multiprocesorů.
- Architektury CC-NUMA DSM.
- Rozhraní zasílání zpráv MPI.
- Kolektivní komunikace, komunikátory a diskové operace.
- Hybridní programování OpenMP/MPI
- Propojovací sítě: topologie a směrovací algoritmy.
- Propojovací sítě: přepínání, řízení toku, zpracování zpráv a výkonnost.
- Architektury se zasíláním zpráv, současné super-počítačové systémy. Distribuované souborové systémy.
Osnova počítačových cvičení
- Práce se superpočítačem Anselm a Salomon
- Paralelizace na systémech se sdílenou pamětí: smyčky, sekce
- Paralelizace na systémech se sdílenou pamětí: tasky, zámky
- Paralelizace na systémech s distribuovanou pamětí: párové komunikace
- Paralelizace na systémech s distribuovanou pamětí: Kolektivní komunikace
- Paralelní vstup výstup, debuggery, profilery a tracery
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.
Průběžná kontrola studia
Vyhodnocení dvou projektů v celkovém rozsahu 13 hodin, bodovaná počítačová cvičení, 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.
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í
Podmínky zápočtu
Získání 20 ze 40 bodů za projekty a půlsemestrální písemku.
Zařazení předmětu ve studijních plánech