|[July 26, 2013]
The OpenMP 4.0 Specification is Released with Significant New Standard Features
CHAMPAIGN, Ill. --(Business Wire)--
The OpenMP Consortium has released OpenMP 4.0, a major upgrade of the
OpenMP standard language specifications. Besides several major
enhancements, this release provides a new mechanism to describe regions
of code where data and/or computation should be moved to another
4.0 is a major advance that adds two new forms of parallelism in the
form of device constructs and SIMD constructs," stated Bronis R. de
Supinski, Chair of the OpenMP Language Committee. "It also includes
several significant extensions for the loop-based and task-based forms
of parallelism already supported in OpenMP 3.1."
Standard for parallel programming extends its reach
With this release, OpenMP,
the de-facto standard for parallel programming on shared memory systems,
continues to extend its reach beyond pure HPC to include DSPs, real time
systems, and accelerators. OpenMP aims to provide high-level parallel
language support for a wide range of applications, from automotive and
aeronautics to biotech, automation, robotics and financial analysis.
New features included in OpenMP 4.0
Support for accelerators. The OpenMP
4.0 specification effort included significant participation by all
the major vendors in order to support a wide variety of compute
devices. OpenMP provides mechanisms to escribe regions of code where
data and/or computation should be moved to another computing device.
Several prototypes for the accelerator proposal have already been
SIMD constructs to vectorize both serial as well as parallelized
loops. With the advent of SIMD units in all major processor chips,
portable support for accessing them is essential. OpenMP 4.0 provides
mechanisms to describe when multiple iterations of the loop can be
executed concurrently using SIMD instructions and to describe how to
create versions of functions that can be invoked across SIMD lanes.
Error handling. OpenMP 4.0 defines error handling capabilities
to improve the resiliency and stability of OpenMP applications in the
presence of system-level, runtime-level, and user-defined errors.
Features to abort parallel OpenMP execution cleanly have been defined,
based on conditional cancellation and user-defined cancellation points.
Thread�affinity. OpenMP 4.0 provides mechanisms to define
where to execute OpenMP threads. Platform-specific data and
algorithm-specific properties are separated, offering a deterministic
behavior and simplicity in use. The advantages for the user are better
locality, less false sharing and more memory bandwidth.
Tasking extensions. OpenMP 4.0 provides several extensions to
its task-based parallelism support. Tasks can be grouped to support
deep task synchronization and task groups can be aborted to reflect
completion of cooperative tasking activities such as search.
Task-to-task synchronization is now 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
specification allows users to parallelize Fortran 2003 compliant
programs. This includes interoperability of Fortran and C, which is
one of the most popular features in Fortran 2003.
User-defined reductions. Previously, OpenMP only supported
reductions with base language operators and intrinsic procedures. With
OpenMP 4.0, user-defined reductions are now also supported.
Sequentially consistent atomics. A clause has been added to
allow a programmer to enforce sequential consistency when a specific
storage location is accessed atomically.
"This release represents collaborative work by many of the brightest in
industry, research, and academia, and it builds on the consensus of 26
members. We strive to deliver high-level parallelism that is portable
across three widely-implemented common General Purpose languages, that
is productive for HPC and consumers, and that delivers highly
competitive performance," says Michael Wong, CEO of the OpenMP ARB. "I
want to congratulate all the members for coming together to create such
a momentous advancement in parallel programming, under such tight
constraints and industry challenges. After this release, OpenMP will
move immediately forward to the next release to bring even more usable
parallelism to everyone."
The OpenMP Application Program Interface (API) is a multi-platform
shared-memory parallel programming model for the C, C++ and Fortran
programming languages. Jointly defined by a group of major computer
hardware and software vendors and the user community, OpenMP is a
portable, scalable model that gives shared-memory parallel programmers a
simple and flexible interface for developing parallel applications for
platforms ranging from multicore systems and SMPs, to embedded systems.
Incorporated in 1997, The OpenMP ARB is the non-profit corporation that
oversees the OpenMP specification and produces and approves new versions
of the specification. Further information can be found at http://www.openmp.org/
[ InfoTech Spotlight's Homepage ]