DRG » Training Courses » Parallel Programming
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.
Classroom
4-day course
English
Program & Details
- Parallel Computer Architectures
- Performance Characteristics
- Parallel Programming Models
- Parallel Program Design
- Message Passing with MPI
- Point-to-Point Communication
- Collective Communication
- Programming with OpenMP
- Parallel Regions
- Parallel Reduction
- Critical Sections and Atomic Operations
- Programming with Threads
- Spawning and Joining Threads
- Mutexes
- Condition Variables
- Final Exercise
Intended for
- 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
Classroom
Price on request
- Face-to-face with instructors
- On-site or in Rijswijk
- Printed course materials
- Lunch included
- For teams