OpenMP is the de facto standard for thread-based parallelization of C/C++ and Fortran applications on shared-memory systems. Its directive-based approach allows incremental parallelization of existing sequential code with minimal restructuring. This course covers both foundational OpenMP concepts and advanced topics – including SIMD vectorization, task-based parallelism, and GPU offloading – giving participants a comprehensive toolkit for shared-memory performance optimization.
The course has evolved considerably: it started as a compact one-day introduction, was later extended and split into two separate events – one covering the fundamentals and one dedicated to advanced topics – and has since been merged back into a single offering, with all materials reworked as interactive Jupyter notebooks.
Level: Beginner to intermediate
Language: English (German upon request for bespoke courses)
Price and Eligibility: Refer to the registration page for each event (generally free of charge for members of academia from Europe).
Knowledge
- Programming experience in C, C++, or Fortran (the majority of examples will be demonstrated in C++)
Technical
- A modern web browser (exercises run on NHR@FAU’s HPC clusters via JupyterHub – no local installation required)
After completing this course, you will be able to:
- Parallelize C/C++ and Fortran applications using OpenMP
- Choose the most suited parallelization approach for the task at hand
- Reason about data sharing between threads and write correct, race-free parallel programs
- Evaluate and improve the performance of OpenMP applications on multi-core and multi-socket hardware
- Apply advanced OpenMP features such as SIMD vectorization and task parallelism
- Offload compute-heavy application parts to GPU accelerators
- OpenMP fundamentals: threads, parallel regions, and the programming model
- Parallelizing loops, managing data sharing, reductions, and synchronization
- Performance optimization: thread placement and memory locality on NUMA systems
- Advanced features: SIMD vectorization and task-based parallelism
- Offloading computation to GPUs and other accelerators
- 2026, May 4-6: three-day online course
- 2025, Feb 26-28: three-day online course
- 2024, Sep 4-6: three half-day online course
- 2024, Mar 12: full-day online course (Part 2)
- 2024, Mar 5: full-day online course (Part 1)
- 2023, Sep 27: full-day online course (Part 2)
- 2023, Sep 20: full-day online course (Part 1)
- 2023, Mar 28: full-day online course (Part 2)
- 2023, Mar 21: full-day online course (Part 1)
- 2022, Oct 4: full-day online course
For an overview of all NHR@FAU courses, visit the course overview page.