Název předmětu | Parallel Programming |
---|---|
Kód předmětu | KI/EPAR |
Organizační forma výuky | Přednáška + Cvičení |
Úroveň předmětu | Magisterský |
Rok studia | nespecifikován |
Semestr | Letní |
Počet ECTS kreditů | 7 |
Vyučovací jazyk | Angličtina |
Statut předmětu | nespecifikováno |
Způsob výuky | Kontaktní |
Studijní praxe | Nejedná se o pracovní stáž |
Doporučené volitelné součásti programu | Není |
Dostupnost předmětu | Předmět je nabízen přijíždějícím studentům |
Vyučující |
---|
|
Obsah předmětu |
1. - 2. Parallel hardware (Flynn taxonomy, loosely and tightly coupled systems, NUMA, SIMD support on AMD/Intel x86_64 platform, AMD, compute clusters, massive parallelism via GPGU) 3. Parallelism limitations (Amdahl's and Gustafson's law, memory organization, cache impact), parallelism from software perspective (asynchronous and concurrent programming, computational threads, data and task-oriented parallelism, memory sharing vs. message passing, synchronization usable for HPC tasks) 4. Module `multiprocessing`, parallel maps, explicit use of communication queues 5. - 6. MPI in Python (point-to-point communication, collective communication) 7. - 8. Parallelism over shared memory, OpenMP and its use in Python (Numba, Cython, C code integration) 9 - 11. Using the CUDA platform in Python (Numba Cuda, Python CUDA) 12 - 14. Modern approaches to HPC parallelism (e.g. parallelism in Julia, Intel oneAPI, content will be adapted to current trends)
|
Studijní aktivity a metody výuky |
nespecifikováno |
Výstupy z učení |
The course covers the use of parallelism including high performance computing. In addition to the necessary theoretical background, it focuses on the use of existing tools and libraries on the Python platform. The course includes both basic approaches to parallelism: systems with message passing (the multiprocessing module, classical MPI) and systems over shared memory (based on OpenMPI and CUDA). A key part of the course are exercises in which students can experience parallel programming not only on desktop computers and laptops with multiple cores, but also on the faculty computing cluster and on specialized hardware (currently Nvidia Jetson Nano).
|
Předpoklady |
programming (Python)
|
Hodnoticí metody a kritéria |
nespecifikováno
preparation and oral defense of a seminar work aimed at implementation of a parallel version of a non-trivial algorithm using CPU and GPU, verification of general factual knowledge |
Doporučená literatura |
|
Studijní plány, ve kterých se předmět nachází |
Fakulta | Studijní plán (Verze) | Kategorie studijního oboru/specializace | Doporučený semestr |
---|