The OpenACC Application Program Interface describes a collection of compiler directives to specify loops and regions of code in standard C, C++ and Fortran to be offloaded from a host CPU to an attached accelerator. OpenACC is designed for portability across operating systems, host CPUs, and a wide range of accelerators, including APUs, GPUs, and many-core coprocessors.
The directives and programming model defined in the OpenACC API document allow programmers to create high-level host+accelerator programs without the need to explicitly initialize the accelerator, manage data or program transfers between the host and accelerator, or initiate accelerator startup and shutdown.
All of these details are implicit in the programming model and are managed by the OpenACC API-enabled compilers and runtimes. The programming model allows the programmer to augment information available to the compilers, including specification of data local to an accelerator, guidance on mapping of loops onto an accelerator, and similar performance-related details.
OpenACC has the following member and supporter organizations:
- Brookhaven National Laboratory
- CRAY Inc
- Edinburgh Parallel Computing Center (EPCC)
- Georgia Tech
- University of Houston
- Indiana University
- King Abdullah University of Science and Technology (KAUST)
- Louisiana State University
- Mentor Embedded
- National Supercomputing Center in Wuxi (NSCC-Wuxi)
- Oak Ridge National Laboratory
- Rogue Wave
- Sandia National Laboratory
- Stony Brook University
- Swiss National Supercomputer Center (CSCS)
- Technical Universitat Dresden
- Tokyo Institute of Technology (TiTech)
- University of Delaware
- University of Illinois at Urbana-Champaign (UIUC)
The OpenACC Corporate Officers are:
- President – Duncan Poole, NVIDIA
- Director of Developer Adoption - Oscar Hernandez, ORNL
- Treasurer - David Wallace, Cray Inc.
- Secretary - Greg Stoner, AMD Inc.
Key contributors include:
- Technical Committee Chair - Michael Wolfe, The Portland Group