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.
Poslední úprava: T_KSI (27.04.2015)
A practical seminar, which is a continuation of Programming in Parallel Environment lectures, focuses on more advanced aspects of parallel programming.
The main objective is to practically introduce more complicated problems to the students regarding programming of multiprocessor NUMA servers and employing additional parallel devices, especially the GPGPUs (CUDA) and Xeon Phi devices.
The students will be given several problems, which will be analyzed during lectures and implemented by the students in their home assignments. The results will be verified and subjected to collective discussion
Poslední úprava: T_KSI (27.04.2015)
Sylabus -
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
Poslední úprava: Kruliš Martin, doc. RNDr., Ph.D. (02.09.2026)
The seminar will present the following problems:
Task scheduling on multicore CPUs and NUMA systems
Synchronization on multi-core CPUs and multiprocessor systems
Efficiency of the data transfers between additional devices and host memory
Load balancing between CPU and additional accelerators
Transforming problems into data parallel tasks and their mapping to GPUs
Shared memory access, cache-aware programming, and atomic operations on GPU
Solving irregular workloads on GPUs (persistent threads, dynamic parallelism)
Xeon Phi devices and the most important differences between Intel MIC and GPU architectures
Poslední úprava: Kruliš Martin, doc. RNDr., Ph.D. (02.09.2026)