Kurz bude posluchačům prezentovat základní znalosti pro práci v oblasti paralelních a distribuovaných výpočtů. Seznámí posluchače s charakteristikou širokého spektra moderních paralelních systémů se sdílenou a distribuovanou pamětí počínaje vícejádrovými procesory a víceprocesorovými systémy přes výpočetní akcelerátory až po paralelních systémy s distribuovanou pamětí. Zaměří se zejména na návrh a implementaci efektivních paralelních algoritmů pro řešení různých druhů výpočetně náročných úloh z různých aplikačních oblastí.
Důraz je kladen jak na popis standardních paralelních paradigmat, rozhraní, jazyků a knihoven, tak na reflexi aktuálního vývoje v této oblast prostřednictvím představení nejnovějších paralelních platforem a prostředí. Posluchač bude seznámen s programováním systémů se sdílenou pamětí (OpenMP), výpočetních akcelerátorů a tvorbou distribuovaných aplikací prostřednictvím modelu předávání zpráv (MPI). Diskutovány budou také cloudové platformy, model map-reduce nebo paralelismus v jazyce Python.
Cvičení budou věnována návrhu a implementaci paralelních algoritmů v prostředí OpenMP, MPI či CUDA-C.