Study program: F7 Computer Engineering
Degree: Bachelor
Type of module: lectures, practical work
Lecturer: PhD Olesia Barkovska
Language: English
Credit Points: 3 ECTS
Description:
The course "Parallel and Distributed Computing" is designed to provide students with a comprehensive understanding of the architectures of parallel and distributed computing systems, as well as methods and tools for developing efficient software in such environments. The curriculum covers the theoretical foundations of parallelism, Flynn’s taxonomy, approaches to automatic and manual parallelization, synchronization mechanisms, and load balancing strategies. It also addresses performance analysis methods (Amdahl’s law, speedup, efficiency) and the design principles of parallel algorithms for matrix operations, graph algorithms, and sorting. The practical component includes programming for distributed memory systems (MPI) and shared memory systems (OpenMP), as well as leveraging graphics processing units for high-performance computing (CUDA, OpenACC). The acquired knowledge and skills enable students to develop high-efficiency application and system software for embedded, mobile, hybrid, and distributed systems.