V rámci předmětu budou studenti řešit následující problémy:
- Plánování na vícejádrových systémech a NUMA systémech
- Otázky synchronizace na vícejádrových CPU a víceprocesorových systémech
- Otázka efektivity datových přenosů mezi přídavným zařízením (např. GPU) a hlavní pamětí
- Vyvažování zátěže mezi CPU a přídavnými akcelerátory
- Transformace problémů na datově paralelní úlohy a jejich mapování na GPU
- Sdílený přístup do paměti, cache-aware programování a atomické operace na GPU
- Řešení nehomogenních úloh na GPU (perzistentní vlákna, dynamický paralelismus)
- Pouziti Xeon Phi zarizeni a hlavni rozdily mezi Intel MIC a GPU architekturami
Praktický seminář, který přímo navazuje na přednášku Programování v paralelním prostředí, a který se zaměřuje na vybrané pokročilé aspekty paralelního programování.
Cílem je podrobně seznámit studenty praktickou formou s komplikovanějšími problémy v oblasti programování víceprocesorových NUMA serverů a práce s přídavnými paralelními zařízeními, zejména pak GPGPU (CUDA) a Intel Xeon Phi.
Bude předložena řada úloh, které studenti rozeberou společně na cvičen í a následně vyzkouší naimplementovat v rámci domácích úkolů. Úlohy budou studentům opraveny a řešení budou podrobena kolektivní diskusi.