What's New in Oracle® Solaris Studio 12.4

Exit Print View

Updated: December 2014

OpenMP 4.0 Support

This release supports new features introduced in the OpenMP API Version 4.0, which is a major upgrade to the OpenMP API standard language specification. New OpenMP 4.0 features supported by the C, C++, and Fortran compilers in this release include the following:

  • Error Handling - OpenMP 4.0 defines error handling capabilities to improve the resiliency and stability of OpenMP applications in the presence of runtime errors. Parallel OpenMP execution can be cleanly aborted using conditional cancellation and user-defined cancellation points.

  • Thread Affinity - OpenMP 4.0 provides mechanisms to define where to execute OpenMP threads, resulting in better locality, less false sharing, and more memory bandwidth.

  • Tasking Extensions - OpenMP 4.0 provides several extensions to task-based parallelism support. Tasks can be grouped to support deep task synchronization. Task-to-task synchronization is supported through the specification of task dependency.

  • Support for Fortran 2003 - The Fortran 2003 standard adds many modern computer language features. Having these features in the OpenMP specification enables users to parallelize Fortran 2003 compliant programs.

  • Sequentially Consistent Atomics - A clause has been added to enable you to enforce sequential consistency when a specific storage location is accessed atomically.

  • User Defined Reduction - In addition to reductions with base language operators and intrinsic procedures, OpenMP 4.0 supports user-defined reductions. Custom reductions can be defined by the programmer using the declare reduction directive; these reductions can then be specified in a reduction clause.

  • New Environment Variable OMP_DISPLAY_ENV - The OMP_DISPLAY_ENV environment variable can be used to display the value of Internal Control Variables (ICVs) associated with the OpenMP environment variables.

Note -  In this release, OpenMP 4.0 device and SIMD constructs are accepted. However, all code will be executed on the host device, and SIMD constructs might not result in the use of SIMD instructions.

For details, see the Oracle Solaris Studio 12.4: OpenMP API User’s Guide .

For more information about the OpenMP 4.0 features, see OpenMP Application Program Interface Version 4.0, July 2013 and OpenMP 4.0.1 Examples, February 2014.