OpenMP is a multithreading framework for C/C++ and Fortran designed for shared memory environments, such as your PC or a single compute node of a cluster. OpenMP directives allow you to parallelize compute-intensive parts of your program to run on multiple cores, with minimal changes to the rest of your code. Since OpenMP is implemented in all major compilers, it is considered one of the simplest and most portable methods for multithreading.
This course takes you from writing your first OpenMP program through standard parallelization patterns, including loop parallelization, work sharing, and synchronization constructs. You'll also learn about advanced features such as tasking, enabling you to effectively utilize modern multicore systems.
The course combines video lectures with hands-on exercises that you can complete on your own laptop or on the training cluster of the HLRS. Weekly seminars provide opportunities to discuss concepts, review exercises, and address questions.
Flexible online course: Combination of self-study and live seminars (HLRS Supercomputing Academy)
Learning outcomes
After completing this course, participants will:
- understand the basics of parallel programming
- know how to parallelize their code using OpenMP Worksharing Constructs
- know how to use OpenMP taskloop Constructs
Instructors
This course consists of video-lectures by Dr. Rolf Rabenseifner. The instructor for the seminars is Dr.-Ing. Martin Bernreuther (HLRS)
Agenda
- Introduction to OpenMP
- Programming and Execution Model
- Parallel Regions: Team of Threads
- Syntax
- Data Environment
- Environment Variables
- Runtime Library Routines
- Worksharing Directives
- Which thread executes which statement or which operation?
- Tasks
- Synchronization Constructs, e.g., Critical Regions
- Nesting and Binding
- Data Environment and Combined Constructs
- Private and Shared Variables, Reduction Clause
- Combined Parallel Worksharing Directives
- Summary of the OpenMP API
- OpenMP Pitfalls & Optimization Issues
For more information, see the official course website:
https://www.hlrs.de/training/2026/sca-pp-omp
Fees
35€ - 720€
Pre-required logistics
Linux Course participants possess advanced basic knowledge of the free operating system Linux and knowledge of Linux applications. The background of Linux as well as the most important concepts and tools of Linux such as
Shell and shell commands (→confident use of the command line),
Secure Shell,
Working with files and scripts,
System structure,
User and permissions management, and
Creating simple batch scripts with an editor like nano, vi, or emacs should be familiar. Instructions for working on the training cluster will be provided.
Programming Skills
You have solid programming skills in a programming language (C / C++ or Fortran).
You can understand additional programming languages and their constructs.