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
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
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.
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.
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.
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:
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.