OPENMP 5.0 is changing the landscape

Matthijs van Waveren, coordinator at the OpenMP ARB, shares highlights of the latest iteration of the parallel computing API

The OpenMP API is an application programming interface (API) that gives parallel programmers a simple and flexible interface for developing parallel applications. The OpenMP community has made a multitude of requests since the OpenMP language introduced version 4.5 in 2015, and as a result, OpenMP 5.0 adds many new features that will be useful for highly parallel and complex applications. With version 5.0, the OpenMP API now covers the whole hardware spectrum from embedded systems and accelerator devices to multicore systems and shared-memory systems. Vendors have started releasing reference implementations of parts of the standard, and user courses will soon be given at OpenMP workshops and major conferences. The OpenMP specification version 5.0 has been released at SC18. OpenMP users are in a

wide range of fields, from automotive and aeronautics to biotech, automation, robotics, and financial analysis. There were user requests to bring OpenMP to the embedded system space and the accelerator space. Also, there was an urgent need to bring OpenMP to the latest levels of the C, C++, and Fortran standards, and to have a standard interface for debugging and performance tools. Finally, there were user requests for improved portability and usability. The OpenMP ARB, a group of major computer hardware and software vendors, as well

as users, jointly developed version 5.0 of the OpenMP specification to fulfil these requests. In addition to several minor and major improvements, the updated specification includes the following features: Full support for accelerator

devices. With the latest additions, the OpenMP specification has full support for accelerator devices. These include mechanisms to require unified shared memory between hosts system and coprocessor devices, the ability to use device-specific function implementations, better control of implicit data mapping, and the ability to override device offload at runtime. Reverse offload, implicit function generation, and the ability to easily copy object-oriented data structures are also supported. Improved debugging and performance analysis. Two new tools interfaces enabling intuitive debugging and support for deeper performance analysis. Support for the latest

versions of C, C++, and Fortran. The OpenMP API now supports important features of Fortran 2008, C11, C++14, and C++17. Multilevel memory

systems. Memory allocation mechanisms are available that place data in different types of memory, such as high-bandwidth. New OpenMP features also make it easier to deal with the NUMAness of modern HPC systems. Greater memory flexibility. Support for acquire/release semantics to optimise low- level memory synchronisation. Enhanced portability.

Declare variant directive and 12 Scientific Computing World October/November 2018

”The OpenMP community has made a multitude of requests since the OpenMP language introduced version 4.5 in 2015”

a new meta-directive for performance portability by compile-time adaptation of OpenMP pragmas. The specifications can be

downloaded from the OpenMP website, and it is possible to participate in the discussions on the OpenMP Forum!

Implementations The major vendors have implemented parts of the OpenMP 5.0 specification in their compiler products. GNU is the furthest along, with their implementation of GCC. They plan to have quite a few features in the next release of GCC, viz GCC 9. In addition, the debugging and performance tools of the vendors are being

extended with OpenMP 5.0 features. More information can be found on the Resources page of the OpenMP website, where you can also find links for OpenMP benchmarks, and OpenMP research projects. The OpenMP YouTube channel is a great place to find education videos, from basic entry-level videos to advanced videos treating the different OpenMP 5.0 features. On the OpenMP website, you find links to tutorials. Advanced OpenMP courses treating elements of OpenMP 5.0 are being given at OpenMP workshops and the SC conferences (SC18 & SC19). The OpenMP workshops, where courses on OpenMP 5.0 can be followed, are the International Workshop on OpenMP (IWOMP), the OpenMP Users’ Conference (OpenMPCon) and the UK OpenMP Users’ Conference. Once OpenMP 5.0 has been

released, the basic OpenMP courses given at universities and other venues will be updated. In addition, a guide with OpenMP examples is available for download from the OpenMP website.

@scwmagazine |

Arbi Studio/

Page 1  |  Page 2  |  Page 3  |  Page 4  |  Page 5  |  Page 6  |  Page 7  |  Page 8  |  Page 9  |  Page 10  |  Page 11  |  Page 12  |  Page 13  |  Page 14  |  Page 15  |  Page 16  |  Page 17  |  Page 18  |  Page 19  |  Page 20  |  Page 21  |  Page 22  |  Page 23  |  Page 24  |  Page 25  |  Page 26  |  Page 27  |  Page 28  |  Page 29  |  Page 30  |  Page 31  |  Page 32  |  Page 33  |  Page 34  |  Page 35  |  Page 36