OpenACC uses directives in C, C++, or Fortran code to guide the compiler to offload selected computations to accelerators.

OpenACC uses directives in C, C++, or Fortran code to guide the compiler to offload selected computations to accelerators.

There is no doubt that the Oak Ridge Leadership Computing Facility’s (OLCF’s) Titan, the nation’s most powerful supercomputer, gets its kick from its 18,688 GPU accelerators. On Titan GPUs operate in tandem with CPUs to simulate groundbreaking scientific research at breakneck speeds. Now the OLCF is working with Mentor Graphics, a leading electronic design automation company, to bring accelerated computing to a broader audience.

By integrating the OpenACC programming standard into the open-source GCC compiler suite, Mentor Graphics is providing the first open-source implementation of OpenACC 2.0. Because GCC is the default compiler on most Linux distributions and is readily available on other platforms, including Mac and Windows, this implementation will greatly expand access to the language and facilitate the development and testing of OpenACC applications on smaller systems, such as workstations and clusters.

OpenACC is an application program interface that allows programmers to provide simple directives to the compiler, identifying which areas of code to offload to the accelerator in a readable and portable fashion. For non-OpenACC-aware compilers, the directives are simply comments, which are ignored. The directives let the compiler do the heavy lifting to map the computation onto an accelerator, while the programmer can focus on the overall structure of the application and the results of the computation instead of generating code specific to the accelerator.

As a member of the OpenACC Standards Group, the OLCF is lending Mentor Graphics its institutional expertise and user insight. The group is a nonprofit corporation funded by the tech companies that developed OpenACC, and members include many companies, universities, and national laboratories that develop or use accelerated computing.

“We’ve been involved with OpenACC since its inception because we want our users to have a standard, portable programming approach for GPUs,” said David Bernholdt, OLCF lead for programming environment and tools. “We’ll be working with Mentor Graphics to help ensure that the GCC implementation of OpenACC works well for OLCF users as well as the larger community.”

For the past year scientists and engineers have used OpenACC, as well as other approaches, on Titan to accelerate many types of applications, ranging from molecular dynamics codes to particle physics models. By accelerating applications to GPUs, users have routinely seen speedups as high as two to seven times faster than equivalent CPU-only architectures.

To prime 2013–2014 users for Titan’s new GPUs, the OLCF offered the Center for Accelerated Application Readiness (or CAAR) program. A handful of world-class applications and teams of researchers using them were selected to run early projects on Titan. OLCF staff worked closely with application experts to optimize each application’s performance on Titan’s GPUs. Mentor Graphics will be tapping into this experience as it develops OpenACC for the GCC compiler.

“The GCC compiler is used in several applications users run on Titan. Having OpenACC in GCC could not only expand research possibilities for OLCF users, but for those at other high-performance computing centers as well,” Bernholdt said.

As OpenACC in GCC becomes readily available, OLCF, Mentor Graphics, and other members of the OpenACC Standards Group predict the open-source version will continue to transform science and industry, just as its commercial predecessors are already doing.