DescriptionOpenMP® is twenty this year. Since its inauguration in 1997, it has become the standard programming model for multi-threading in HPC applications and drove many scientific discoveries by helping domain scientists implement multi-threading in their simulation codes. The OpenMP API is based on directives to augment code written in C/C++ and Fortran with parallelization hints to the compiler.
In its 20 years of existence, OpenMP has evolved from a purely multi-threaded model to a programming model that supports modern task-based programming as well heterogeneous programming for offload devices such as GPUs. With its extensions it also supports data-parallel programming for single-instruction multiple-data architectures.
This presentation reviews the history of OpenMP, the current features and provides an outlook for the upcoming OpenMP API specification, OpenMP Technical Report 6: Version 5.0 Preview 2, which will be released during SC’17. The final version of OpenMP version 5.0 is planned for SC18.