Detail předmětu

Paralelní a distribuované programování

PDD Ak. rok 2005/2006 zimní semestr

Aktuální akademický rok

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

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

Nahoru