|
|
Paralelní programování - Seznam přednášek a cvičení (sylabus)
Přednášky
-
Úvod
Paralelní a distribuované programování, konkurence, synchronizace, abstrakce konkurentního
programu, stav, scénář.
-
Úvod
Atomické akce, architektury HW, korektnost, férovost,
podmíněná synchronizace, aktivní čekání.
-
Problém producent-konzument
-
Kritická sekce a vzájemné vyloučení
Dokazování korektnosti pomocí stavových diagramů, Dekkerův,
Petersonův, pekařský a „rychlý“ algoritmus,
složené atomické akce, zámek (mutex).
-
Bariéra
Flynnova taxonomie, implementace.
-
Datově paralelní algoritmy
-
Semafor
Implementace a jeho použití pro řešení kritické sekce, problému
producent-konzument a bariéry, simulace obecného semaforu.
-
Problém čtenářů a písařů
-
Další synchronizační problémy
Večeřící mudrci, spící
holič, kuřáci dýmky aj.
-
Monitor, podmíněné proměnná a chráněný objekt
Jejich použití pro řešení
synchronizačních problémů.
-
API pro paralelní programování, heterogenní výpočetní platformy
Simulátor konkurence, model checker, API pro paralelní
programování (POSIX Threads, Windows Threads, OpenMP, .NET
Parallel Extensions, GCD), výpočty na grafických kartách.
Cvičení
-
API pro paralelní programování
Vytvoření vícevláknového programu, POSIX Threads, Windows
Threads, .NET System.Threading, Common Lisp.
-
Scénář paralelního programu
Sestavení a demonstrace scénáře, procedura/metoda/makro
concurrent.
-
Problém producent-konzument
Implementace, modifikace, ověření korektnosti.
-
Kritická sekce a složené atomické akce
Řešení, implementace a ověření korektnosti řešení kritické
sekce s využitím složené atom. akce.
-
Podmíněná synchronizace, bariéra
Implementace bankovního systému a řešení bariér.
-
Datově paralelní algoritmy
Implementace různých algoritmů.
-
Semafor a mutex
Implementace a ověření řešení problémů.
-
Simulace obecného semaforu, problém stabilních manželství
Ověření korektnosti, řešení a implementace.
-
Problém čtenářů a písařů
Implementace.
-
Další synchronizační problémy
Implementace: večeřící
mudrci, spící holič, kuřáci dýmky aj.
-
Monitor, podmíněné proměnná a chráněný objekt
Implementace některého problému, tvorba simulací.
-
API pro paralelní programování, výpočty na grafických
kartách
OpenMP, .NET Parallel Extensions, OpenCL.
|