About the course
This course is a practical introduction to parallel programming. The course explains the basic concepts of programming for parallel computers and focuses on the two common parallel programming models: the message passing model in combination with MPI, and the shared memory model in combination with both OpenMP and (POSIX) threads. You will learn how to divide a set of computations into parallel tasks; how to coordinate the execution of those tasks; how to transfer data between the tasks; and how to resolve dependencies between the tasks.
The course mixes theory with practical, hands-on exercises. These exercises enable you to apply newly learned knowledge in smaller and larger contexts, and thus provide an opportunity to really understand different aspects related to parallel programming. Some of the exercises involve implementing the same algorithm with different programming models so that the differences between those models become more apparent. After completing the course, you should be able to design and implement parallel algorithms using a programming model that provides the best match with the algorithm and the target hardware. You should be able to assess the performance of the implementation and solve all kinds of practical problems that will pop up during the implementation of the algorithm.
Program & Details
- The training course is aimed at students, researchers and professional software developers who seek to take advantage of multi-core processors and other kinds of parallel computers.
Prerequisites and level
Experience with the C programming language is required. In particular, you must be familiar with the type system, basic statements, pointers, arrays, dynamic memory allocations, functions and structures.
Not sure? Please contact us.
Selected course format
- Face-to-face with instructors
- On-site or in Rijswijk
- Printed course materials
- Lunch included
- For teams