8 Nov 2018 Dallas - The OpenMP Architecture Review Board (ARB) has released Version 5.0 of the OpenMP API Specification, a major upgrade of the OpenMP language. The OpenMP community has made many requests since version 4.5 was introduced in 2015. As a result OpenMP 5.0 adds many new features that will be useful for highly parallel and complex applications. OpenMP now covers the entire hardware spectrum from embedded and accelerator devices to multicore systems with shared-memory. Vendors have made reference implementations of parts of the standard, and user courses will soon be given at OpenMP workshops and major conferences.
The OpenMP API is used in a wide range of fields, from physics, automotive and aeronautic simulations to biotech, and from automation and robotics, to financial analysis. Requests from users in these fields included adding features to enhance OpenMP for the embedded system and accelerator spaces, to provide a standard interface for debugging, and to improve performance tools. In addition to meeting these requests, OpenMP 5.0 also improves portability and usability, while bringing the specification to support the latest versions of C, C++, and Fortran.
"OpenMP 5.0 adds critical features in several areas. For example, it significantly reduces the effort to use accelerators effectively through its support for unified shared memory via the requires directive and for implicit declare target directives", stated Bronis R. de Supinski, the Chair of the OpenMP Language Committee and the ARB Representative from Lawrence Livermore National Laboratory. "I have personally represented user requirements not only from the CORAL procurements but also from the Department of Energy's Exascale Computing Project. Representatives from several other sites have brought a variety of other requirements, such as improvements to OpenMP's tasking model."
Version 5.0 of the OpenMP specification was jointly developed by the OpenMP ARB, a group of major computer hardware and software vendors, as well as users throughout the OpenMP community. In addition to several minor improvements, the updated specification includes the following major additions:
The Proceedings of the IEEE recently published an article by the leaders of the OpenMP Language Committee that details many of these features as well as plans for future enhancements of the language. Subscribers to the IEEE Digital Library have access to it.
Major vendors have implemented parts of the OpenMP 5.0 specification in their products. GNU is the furthest along with their implementation of GCC and they plan to have quite a few features in the next release of GCC, viz GCC 9. In addition, vendors' debugging and performance tools are being extended with OpenMP 5.0 features. More information can be found on the Resources tab of the OpenMP website, where you can also find links for OpenMP benchmarks and OpenMP research projects.
The OpenMP ARB has released several auxiliary documents to accompany OpenMP 5.0. These documents provide OpenMP context definitions in addition to example header files and interfaces that previously appeared in appendices of the OpenMP specification. A header file for the new tool interfaces is also provided. These associated source example will now be available in a compilable form.
The OpenMP YouTube channel is a great place to find educational videos about OpenMP, from entry-level to advanced, including information about the new features. On the OpenMP website you can find links to tutorials and advanced courses on OpenMP 5.0 given at OpenMP workshops and the SC conferences (SC18 & SC19). OpenMP workshops where courses on OpenMP 5.0 are offered are the International Workshop on OpenMP ( IWOMP ), the OpenMP Developers Conference ( OpenMPCon ), and the UK OpenMP Users' Group . Of course, once OpenMP 5.0 implementations are widely available, the basic OpenMP courses given at universities and other venues will be updated. Finally, several books about OpenMP provide detailed lessons on the language and many OpenMP examples are available on the OpenMP website.