Since its creation in 1997, the OpenMP API has become the standard programming model for on-node parallelism in HPC applications and has enabled many scientific discoveries by making it easy for scientists to exploit the power of modern computers. The OpenMP API uses directives to augment code written in C/C++ and Fortran with parallelization, vectorization, and offload instructions for the compiler.
Version 5.0 of the OpenMP API introduced major enhancements and includes many powerful parallelization features for modern multi-threaded applications. In this presentation, we will review the major additions for multi-threading and support of heterogeneous programming. We will show how OpenMP has evolved from a simple language for loop-based parallelism to a modern programming model with powerful parallelization concepts for highly complex algorithms. We will close with an outlook and overview of the features planned for next OpenMP versions.