Detail předmětu
Paralelní a distribuované programování
PDD Ak. rok 2005/2006 zimní semestr
Předmět podává celkový pohled na souběžné programování a popisuje jeho jednotlivé varianty - od paralelního programování orientovaného na vysokou výkonnost vědeckých výpočtů, přes distribuované zpracování síťových aplikací až po multivláknové programy a výpočty na Webu. Jsou vysvětleny základní pojmy, techniky interakce procesů a vláken a možnosti jejich zápisu jazykovými prostředky s ohledem na správnost programů a případně výkonnost. Důraz je na praktických aspektech a implementaci, výklad je doplněn četnými příklady.
Garant předmětu
Jazyk výuky
Zakončení
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í, distribuované a multivláknové 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 souběžného programování.
Paralelní architektury s distribuovanou a sdílenou pamětí, programování v C/C++, základní numerické metody.
Cíle předmětu
Vysvětlit klíčové pojmy a techniky paralelního, distribuovaného a multivláknové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.
Požadované prerekvizitní znalosti a dovednosti
Paralelní architektury s distribuovanou a sdílenou pamětí, programování v C/C++, základní numerické metody
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í a distribuované výpočty.
- Programování se sdílenými proměnnými: procesy a synchronizace.
- Zámky a bariéry.
- Sdílené prostředky, semafory.
- Synchronizační techniky, monitory.
- Implementace synchronizačních primitiv.
- Distribuované programování: zasílání zpráv.
- RPC a setkání.
- Vzory interakce procesů.
- Implementace zasílání zpráv.
- Paralelní programování: vědecké výpočty.
- Jazyky, kompilátory, knihovny a nástroje.
- Případové studie paralelních aplikací.
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 souběžného programování.