OpenMP News

»4.0 Examples Document Released

The first release of the OpenMP 4.0 API Examples document is now available and can be downloaded from the Specifications page.  This is a work in progress — additional examples are under development and will be released in later editions.

Also, a discussion forum for the 4.0 Examples document is now open.

»OpenMP ARB at SC’13

OpenMP at SC13

»Recently Published Articles on OpenMP

Admin Magazine/HPC

The Clang/LLVM compiler now supports OpenMP 3.1

Linux Journal / Advanced OpenMP

In Online Journal Embedded
A portable OpenMP runtime library based on MCA APIs for embedded systems – Part 3

ACM Digital Library
Portable mapping of OpenMP to Multicore embedded systems using MCA APIs

»University of Houston Joins the OpenMP Effort

The University of Houston (UH) has joined the OpenMP Consortium, a group of leading hardware and software vendors and research organizations creating the standard for the most popular shared-memory parallel programming model in use today.

“We are excited to join the OpenMP family as an academic member”, says Barbara Chapman, Professor of Computer Science and director of the Center for Advanced Computing and Data Systems (CACDS) at UH. “Through cOMPunity, we have been involved since the beginning. With this new membership, we will continue to engage with the OpenMP community.”

“This is a great step forward for the UH HPCTools research group. We look forward to continuing our efforts to support standardization of OpenMP, to providing reference implementations through the OpenUH compiler and proposing new features”, says Yonghong Yan, Research Assistant Professor at UH.

The University of Houston is located in the Houston metropolitan area, world headquarters for the energy industry and home to the Texas Medical Center. UH HPCTools Research group, led by Chapman and Yan, performs research on parallel programming models, compiler technologies, and HPC applications and systems. CACDS provides HPC resources at UH.

“I wish to warmly welcome UH to OpenMP, although they are no stranger, with a rich and deep history of working with and contributing to OpenMP as well as research regarding OpenMP” says Michael Wong, OpenMP CEO.

The OpenMP ARB now has 14 permanent members and 12 auxiliary members. Permanent members are vendors with a long-term interest in creating products for OpenMP, while auxiliary members have an interest in OpenMP and do not create or sell products.

»9th OpenMP Workshop Sept 16-18 in Australia

IWOMP 2013 Canberra

9th International Workshop on OpenMP — September 16-18, 2013

The »International Workshop on OpenMP (IWOMP) is an annual workshop dedicated to the promotion and advancement of all aspects of parallel programming with OpenMP. It is the premier forum to present and discuss issues, trends, recent research ideas and results related to parallel programming with OpenMP. The international workshop affords an opportunity for OpenMP users as well as developers to come together for discussions and sharing new ideas and information on this topic.

IWOMP 2013 will be a three-day event. The first day will consist of tutorials focusing on topics of interest to current and prospective OpenMP developers, suitable for both beginners as well as those interested in learning of recent developments in the evolving OpenMP standard. The second and third days will consist of technical papers and panel sessions during which research ideas and results will be presented and discussed.

Go to » for more information.

»OpenMP 3.1 Support in Clang Announced

The Clang community has announced the availability of a full OpenMP 3.1 support implementation in the Clang compiler:

“This project implements OpenMP support in the Clang C language family front-end for the LLVM compiler. The current scope of the project is to support the OpenMP 3.1 specification.”

The project is hosted here:

It is based on clang 3.3 (and will be updated as new clang/llvm releases become available); also, we plan to eventually contribute everything to the clang trunk (initial patches have already been committed). This implementation supports 3.1 version of OpenMP standard in full; it passes all OpenMP tests we tried with it so far (this includes OpenMP Validation Suite from OpenUH Research Compiler, SPEC OMP2012 and internal Intel test suites). Performance-wise, it demonstrates similar gains and scalability as other compilers with OpenMP support.

»OpenMP Consortium Announces Red Hat As New Member

26 vendors and research organizations collaborating on standard parallel programming model

Red Hat has joined the OpenMP Architecture Review Board (ARB), a group of leading hardware and software vendors and research organizations creating the standard for today’s most prevalent shared-memory parallel programming model.

“As a leading proponent of OpenMP, Red Hat is thrilled to officially join the OpenMP ARB,” said Mike Werner, senior director, ISV and developer ecosystems, Red Hat. “We believe that the OpenMP model is important in simplifying parallel processing efforts, and implement the standard in Red Hat Enterprise Linux, including Red Hat Enterprise Linux 6.”

Red Hat is the world’s leading provider of open source solutions, using a community-powered approach to reliable and high-performing cloud, Linux, middleware, storage and virtualization technologies. The company’s membership in the OpenMP ARB exemplifies a long-standing commitment to the development and support of tools and standards that help advance open source technology and its adoption within the developer community.

“I am very pleased to have Red Hat participate in the OpenMP family”, said Michael Wong, OpenMP CEO. “Red Hat has a long tradition of supporting OpenMP with rapid GCC implementations and strong commitment to open standards. This will help to ensure deeper collaboration.”

The OpenMP ARB now has 14 permanent members and 12 auxiliary members. Permanent members, including Red Hat, are vendors who have a long-term interest in creating products for OpenMP, while auxiliary members are organizations with an interest in the standard but that do not create or sell OpenMP products.

»OpenMP 4.0 Specifications Released

The OpenMP 4.0 API Specification is released with Significant New Standard Features

The OpenMP 4.0 API supports the programming of accelerators, SIMD programming, and better optimization using thread affinity

The OpenMP Consortium has released OpenMP API 4.0, a major upgrade of the OpenMP API 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 computing device.

Bronis R. de Supinski, Chair of the OpenMP Language Committee, stated that “OpenMP 4.0 API is a major advance that adds two new forms of parallelism in the form of device constructs and SIMD constructs. It also includes several significant extensions for the loop-based and task-based forms of parallelism already supported in the OpenMP 3.1 API.

The 4.0 specification is now available on the »OpenMP Specifications page.

Standard for parallel programming extends its reach

With this release, the OpenMP API specifications, 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. The OpenMP API 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 in the OpenMP 4.0 API include:

· Support for accelerators. The OpenMP 4.0 API specification effort included significant participation by all the major vendors in order to support a wide variety of compute devices. OpenMP API provides mechanisms to describe regions of code where data and/or computation should be moved to another computing device. Several prototypes for the accelerator proposal have already been implemented.

· 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 API 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 API 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 API 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 API 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 API only supported reductions with base language operators and intrinsic procedures. With OpenMP 4.0 API, 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 represents collaborative work by many of the brightest in industry, research, and academia, building on the consensus of 26 members. We strive to deliver high-level parallelism that is portable across 3 widely-implemented common General Purpose languages, productive for HPC and consumers, and delivers highly competitive performance. 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.
With this release, the OpenMP API will move immediately forward to the next release to bring even more usable parallelism to everyone.
– Michael Wong, CEO OpenMP ARB.

The OpenMP API supports multi-platform shared-memory parallel programming in C/C++ and Fortran. The OpenMP API defines a portable, scalable model with a simple and flexible interface for developing parallel applications on platforms from the desktop to the supercomputer.
»Read about