Předmět: Parallel Programming

» Seznam fakult » PRF » KI
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í
  • Fišer Jiří, Mgr. Ph.D.
  • Posel Zbyšek, doc. RNDr. Ph.D.
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ý ročník Doporučený semestr