Skip to main content
Skip header

Parallel Computing

Language of instruction angličtina, čeština
Code 460-4179
Abbreviation PCO
Course title Parallel Computing
Coordinating department Department of Computer Science
Course coordinator prof. Ing. Pavel Krömer, Ph.D.

Anotace

The course will present the students with basic knowledge for working in the field of parallel and distributed computing. It will familiarize the students with the characteristics of a wide range of modern parallel systems with shared and distributed memory, starting from multi-core processors and multi-processor systems through computing accelerators to parallel systems with distributed memory. It will focus mainly on the design and implementation of efficient parallel algorithms for solving various types of computationally intensive tasks from different application areas.

The emphasis is placed on both the description of standard parallel paradigms, interfaces, languages ​​, and libraries, and on reflecting current developments in this area by introducing the latest parallel platforms and environments. The student will be introduced to the programming of shared memory systems (OpenMP), computing accelerators, and the creation of distributed applications using the message passing model (MPI). Cloud platforms, the map-reduce model, or parallelism in Python will also be discussed.

The exercises will be devoted to the design and implementation of parallel algorithms in the OpenMP, MPI, or CUDA-C environment.

Povinná literatura

1. Parallel Computing course material.
2. Parallel Programming for Multicore and Cluster Systems, 3rd edition. Thomas Rauber, Gudula Rünger. Springer International Publishing, 2023.
3. Introduction to Parallel Computing. Z. J. Czech. Cambridge: Cambridge University Press, 2017.
4. Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering. Ian Foster, Addison Wesley, 1995

Doporučená literatura

1. The OpenMP Common Core: Making OpenMP Simple Again, Timothy G. Mattson, Yun He, Alice E. Koniges. MIT Press, 2019
2. Distributed Systems (3rd ed.), Andrew S. Tanenbaum, Maarten van Steen, 2017
3. Distributed Computing Principles, Algorithms, and Systems, Ajay D. Kshemkalyani, Mukesh Singhal, Cambridge, 2008