OpenMP® Forum

Discussion on the OpenMP specification run by the OpenMP ARB. OpenMP and the OpenMP logo are registered trademarks of the OpenMP Architecture Review Board in the United States and other countries. All rights reserved.

This draft will serve as the basis of an official 3.1 update of the specification, which is expected to be ratified in time for the International Workshop on OpenMP (IWOMP) 2011 in Chicago. All interested users and implementers are invited to review the comment draft and to provide feedback through this OpenMP Forum. The comment period ends May 1, 2011.

The 3.1 version is intended as a minor release that will not break existing, correct OpenMP applications. However, it does include several new features, most notably the addition of predefined min and max 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. It also includes extensions to the OpenMP tasking model that support optimization of its use.

Please post your comments in this forum by creating a new topic.

Appendix F of the draft spec lists the differences between 3.0 and the 3.1 draft:

Version 3.0 to 3.1 Differences

The final and mergeable clauses (see Section 2.7.1 on page 59) were added to the task construct to support optimization of task data environments.

New reduction operators '''min''' and '''max''' were added for C and C++ (see Section 2.9.3.6 on page 101 and page 104)

The nesting restrictions in Section 2.10 on page 109 were clarified to disallow closely-nested OpenMP regions within an atomic region. This allows an atomic region to be consistently defined with other OpenMP regions so that they include all the code in the atomic construct.

The omp_in_final runtime library routine (see Section 3.2.20 on page 138) was added to support specialization of final or included task regions.

Descriptions of examples (see Appendix A on page 159) were expanded and clarified.

Incorrect use of omp_integer_kind in Fortran interfaces (see Appendix D on page 325) was corrected.