There are two broad categories of parallel programming techniques that exist: the first is shared-memory, while the second is message-passing. This workshop looks at shared-memory programming, with a special focus on OpenMP.
Prerequisites
In order to edit, compile and run the examples, you should have experience with:
- the bash command line interface
- the C programming language
- the GNU GCC compiler suite
A short refresher will be given in the introduction.
Two printed sources we used while developing this material were:
Setup | Download files required for the lesson | |
09:00 | 1. Introduction |
What is shared-memory programming?
What is OpenMP? |
09:30 | 2. Hello World |
How do you compile and run an OpenMP program?
What are OpenMP pragmas? |
09:55 | 3. Linear algebra | How do I parallelize a loop? |
10:45 | 4. Numeric Integration - Calculating Areas | How can we calculate integrals? |
11:05 | 5. Searching through data | How to search in parallel |
11:40 | 6. Calculating Fibonacci numbers | How to recurse in parallel |
11:55 | 7. Drawing the Mandelbrot set | How do we handle irregular tasks? |
13:55 | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.