OpenACC API FAQ

What is OpenACC API?

OpenACC API allows parallel programmers to provide simple hints, known as “directives,” to the compiler, identifying which areas of code to accelerate, without requiring programmers to modify or adapt the underlying code itself.  By exposing parallelism to the compiler, dir

How does the OpenACC API work?

In programs using the OpenACC API, data movement between accelerator and host memories and data caching is implicitly managed by the compiler with hints from the programmer in the form of OpenACC directives. OpenACC directives also allow the programmer provide guidance on mapping loops onto an accelerator and similar performance-related details

What problem is OpenACC API solving?

It provides a simple programming model for accelerators that can work in the presence or absence of an accelerator
It defines a unified set of directives for programming accelerators in portable standards-compliant C, C++ or Fortran

What are the benefits of OpenACC API

It enables an easy path for developers to start reaping the benefits from powerful many-core accelerators like GPUs.

Who will the OpenACC API be important to?

Scientists interested in accelerators who can benefit from a simpler programming model.

Organizations with a significant investment in legacy production applications that have not yet been parallelized.

Developers wishing to create and leverage reusable code that isn’t specific to individual hardware and is expected to have longevity.

What is the OpenACC specification based on?

It was initially developed by PGI, Cray, and NVIDIA with support from CAPS, and is largely based on the PGI Accelerator programming model.

All four companies intend to work within the OpenMP language committee to merge OpenACC specification and create a common specification that extends OpenMP to support accelerators.

Who are the vendors announcing support for the OpenACC API today?

The initial group includes CAPS, Cray, NVIDIA, PGI

Because multiple vendors can ship products that support a common specification, it will help to speed up the rate of adoption of directive-based programming models for accelerators.

What is the difference between OpenACC API and currently shipping directive-based compilers for accelerators?

The announcers were able to define a single common syntax and a common subset of features which they are in the process of merging into their existing accelerator products. Individual compiler products may have increased capabilities beyond the specification.

How does the OpenACC API relate to OpenMP API?

Today, there is no OpenMP support for accelerators. The creators of the OpenACC API are all members of the OpenMP Working Group on Accelerators. Those members intend to merge the OpenACC API with the OpenMP specification to create a common specification which extends OpenMP to support accelerators in a future release of OpenMP.

Quote from Michael Wong, CEO of the OpenMP Architecture Review Board:

Is the OpenACC API only for HPC

No. The OpenACC API is designed to simplify programming for accelerators, which have spread beyond HPC to communities such as Oil & Gas, Finance, and Manufacturing.

Pages