Detail předmětu

Paralelní a distribuované programování

PDD Ak. rok 2004/2005 zimní semestr

Aktuální akademický rok

Předmět podává celkový přehled paralelního programování se sdílenou i distribuovanou pamětí s orientací na vysokou výkonnost vědeckých výpočtů. Na začátku je uveden přehled paralelních architektur, a to jak abstraktní modely, tak reálné systémy. Než se přejde na všeobecně uznávanou obecnou metodiku návrhu paralelních algoritmů podle Fostera (rozčlenění-komunikace-aglomerace-mapování), je provedena analýza výkonnosti paralelního zpracování, která možní získat názor na hranice možností paralelních výpočtů a paralelizace samotné. Další praktičtější část představuje úvod do OpenMP, aplikačního rozhraní pro programy se sdílenými proměnnými. Je pojednáno o vyjádření paralelizmu (paralelní oblast, paralelní sekce, sdílení práce a příslušné direktivy) s důrazem na paralelizaci smyček. Dále je pojednáno o synchronizaci v OpenMP (vzájemném vyloučení, synchronizaci událostmi a synchronizaci programované uživatelem). Je analyzována výkonnost paralelních aplikací, tj. konečný cíl, včetně některých úskalí, která se mohou vyskytnout (falešné sdílení, synchronizační režie, špatná lokalita a granularita apod.). Další probírané rozhraní (MPI) se týká programů se zasíláním zpráv. Zde je důraz na variantách komunikačních příkazů a jejich správném použití. Podrobně jsou též vyloženy kolektivní komunikace, které se vyskytují ve všech vědecko-technických programech. Je uvedena i možnost smíšeného programování v OpenMP+MPI na svazcích SMP. V poslední části předmětu jsou probírány možnosti paralelizace často se vyskytujících úloh: paralelní lineární algebra, metoda konečných diferencí, dále paralelní řazení, paralelní řešení diskrétních optimalizačních úloh a konečně paralelní zpracování signálů a obrazů. Důraz je na praktických aspektech a implementaci, výklad je doplněn četnými příklady. Celkově jsou vysvětleny základní kameny paralelních aplikací, techniky interakce procesů a vláken, možnosti jejich zápisu jazykovými prostředky v OpenMP a MPI s ohledem na výkonnost a nejčastější se vyskytující paralelní výpočty.

Garant předmětu

Jazyk výuky

česky, anglicky

Zakončení

zkouška

Rozsah

  • 39 hod. přednášky

Zajišťuje ústav

Získané dovednosti, znalosti a kompetence z předmětu

Naučit se psát paralelní programy pro řešení reálných problémů. Umět využívat paralelismu a komunikace na úrovni vláken a procesů. Seznámit se s moderními standardními rozhraními, rozšířením jazyků a dalšími nástroji pro uvedené typy paralelního programování.

Cíle předmětu

Vysvětlit klíčové pojmy a techniky paralelního programování. Naučit paralelnímu řešení problémů, tvorbě správných programů a seznámit s vybranými reálnými paralelními aplikacemi.

Doporučené prerekvizity

Požadované prerekvizitní znalosti a dovednosti

Nejsou žádné prerekvizity.

Literatura studijní

Literatura referenční

  • Pacecho, P.: Introduction to Parallel Programming. Morgan Kaufman Publishers, 2011, 392 s., ISBN: 9780123742605   
  • Kirk, D., and Hwu, W.: Programming Massively Parallel Processors: A Hands-on Approach, Elsevier, 2010, s. 256, ISBN: 978-0-12-381472-2

Osnova přednášek

  • Paralelní architektury.
  • Analýza výkonnosti
  • Návrh paralelních algoritmů.
  • Programování se zasíláním zpráv, MPI
  • Kolektivní komunikace 
  • Programování se sdílenou pamětí, OpenMP
  • Synchronizace vláken
  • Kombinace MPI a OpenMP
  • Paralelní lineární algebra 
  • Metody konečných diferencí
  • Paralelní řazení
  • Paralelní řešení diskrétních optimalizačních úloh
  • Paralelní zpracování signálů a obrazů

Průběžná kontrola studia

Hodnocení studia je založeno na bodovacím systému. Pro úspěšné absolvování předmětu je nutno dosáhnout 50 bodů.

Kontrolovaná výuka

Obhajoba projektu, programového díla využívajícího některou variantu paralelního programování.

Nahoru