History and Evolution

The OpenMP standard was started in the late 1990s by a group of vendors, Intel, and the U.S. Department of Energy who originally formed the OpenMP ARB. Version 1.0 of the standard only supported Fortran in 1997, with C/C++ support coming later. Eventually the standards were completely merged into a single specification in 2005 as Version 2.5, and have remained unified since then.

While discussions about adding task-based parallelism to the specification began in 2004, they were not initially added until 2008 in Version 3.0, with more improvements to their implementation coming in consecutive versions. Support for accelerators and SIMD parallelization began in Version 4.0 in 2013, and have also continued to see updates in later versions to expand and improve support.

Major releases of OpenMP have come out about every 5 years since the first version, with some other minor versions being released in-between. When a specification is released, there is always a period of time before compiler developers catch up in adding all the new features and fixes to their language. Consequently, while Versions 5.1 and 5.2 have been released as of this writing, compiler support is not completely implemented for Version 5.0 of OpenMP. The OpenMP ARB has dubbed Version 5.0 a "major leap forward" because it "adds many new features that will be useful for highly parallel and complex applications", many of which were requested by users. The upcoming Version 6.0 is expected to contain more support for real-time systems, and some changes to terminology (also see the CAC's Inclusivity Statement).

A useful reference book covering all the OpenMP releases to date is OpenMP API 5.2 Examples (book, pdf). You may also find it informative to see a list of who is using OpenMP.

OpenMP Timeline from version 1.0 to version 6.0 (expected). Notable events are the introduction of OpenMP 1.0 in 1997, OpenMP 4.0 in 2013, and the expected release of OpenMP 6.0 in 2023.
OpenMP Timeline from version 1.0 to version 6.0 (expected).
 
©   Cornell University  |  Center for Advanced Computing  |  Copyright Statement  |  Inclusivity Statement