Parallel Computing

3rd year - 2nd semester - 2 credits

The "Parallel Computing" course involves studying the principles and methods of parallel programming and computing, which are used to solve computational tasks on multi-processor and multi-threaded systems. Students learn to create efficient parallel programs that can simultaneously utilize the resources of multiple computational cores or devices to accelerate task execution. The course covers various aspects of parallel programming, including designing parallel algorithms, managing execution threads, synchronization, and task coordination, as well as ensuring the effective utilization of available computational resources. Students explore various models of parallel computing, such as threads, processes, tasks, and distributed computing, and examine examples of parallel programming applications in various fields, including scientific research, data analysis, graphic design, machine learning, and others. Additionally, the course familiarizes students with modern parallel programming technologies and development tools, providing them with practical skills and experience in working with parallel computing. Upon completing the course, students acquire a deep understanding of the principles and methods of parallel programming, enabling them to develop scalable and high-performance applications for modern computing systems.