The OpenMP Architecture Review Board announces the release of version 3.1 of the OpenMP specification.

The 3.1 version is a minor release that does not break existing, correct OpenMP applications. However, it does include several new features, most notably the addition of predefined min and max reduction operators for C and C++, and extensions to the atomic construct that allow the value of the shared variable that the construct updates to be captured or written without being read. Also, extensions have been added to bind threads to a processor, and to support optimization of applications that use the OpenMP tasking model.

“Version 3.1 represents a significant effort on the part the OpenMP Language Committee that lays the ground work for future extensions to better support emerging hardware directions,” stated Language Committee Chair Bronis R. de Supinski. “We have added extensions that handle some of the most frequent user requests while also working to make the specification and its associated examples clearer. We expect these extensions will improve usability and performance.”

“Concurrent to our work on version 3.1, we have also been making progress on several significant enhancements to the specification that we expect to serve as the basis for version 4.0,” de Supinski continued. “Topics under consideration include support for accelerators such as GPUs, major enhancements to the tasking model, mechanisms to support error handling and user defined reductions. I welcome inquiries from anyone interested in contributing to these directions.”

The complete 3.1 specification in PDF can be found on the Specifications page.

A new forum to discuss the 3.1 specification is also now available.