Introduction to OpenMP
Course Description
OpenMP is a widely supported standard for parallelizing shared-memory C/C++ and Fortran applications. It offers a simple, low-barrier entry to thread-based parallelization. This course introduces the fundamental concepts and constructs of OpenMP, as well as advanced topics like tasking and accelerator offloading.
Learning Objectives
OpenMP is a standard for parallelizing shared-memory C, C++, and Fortran applications. Supported by major compilers, it offers a simple, low-barrier entry to thread-based parallelization.
This course introduces the fundamentals of OpenMP, including:
- Basic OpenMP concepts
- Directives and runtime functions
- Parallel regions
- Managing private and shared data
- Parallelizing loops
- Synchronization techniques
Building on these basics, the course also explores advanced topics, such as:
- Thread affinity and memory locality
- Programming for ccNUMA systems
- Task-based shared-memory parallelization
- Single Instruction Multiple Data (SIMD) programming
- Accelerator programming using offloading
Participants will follow live demonstrations and conduct hands-on exercises using the NHR@FAU clusters, gaining practical experience to reinforce the concepts learned.
Certification
A certificate of participation will be awarded to all participants who actively engage in the course.
Prerequisites
Participants should meet the following requirements:
- A basic understanding of programming in C, C++, or Fortran (note: most code examples will use C++).
- Familiarity with compiling applications using a command-line compiler.
Upcoming Iterations and Additional Courses
You can find dates and registration links for this and other upcoming NHR@FAU courses at https://hpc.fau.de/teaching/tutorials-and-courses/.