The Portland Group, a wholly-owned subsidiary of STMicroelectronics and a leading supplier of compilers and tools for high-performance computing (HPC), announced immediate availability of its PGI Accelerator™ Fortran and C compilers with support for the new Open ACC® 1.0 specification for directive-based programming of GPUs and accelerators that allows programmers to provide hints or guidance in their programs.
“PGI continues to make accelerator programming more straight forward and productive for domain experts in science and engineering,” said Douglas Miles, Director of The Portland Group. “The Open ACC standard dovetails perfectly into our existing compiler products as a subset of the PGI Accelerator programming model. The PGI Accelerator compilers for Fortran 2003 and C include support for both high-level directive-based x64+GPU programming and explicit GPU programming using CUDA C/C++/Fortran language extensions.”
The Open ACC standard, unveiled at the SC11 conference in November, 2011, as founded by PGI, Cray, and NVIDIA, with support from CAPS, is fully compatible and interoperable with the NVIDIA® CUDA® parallel programming architecture. The Open ACC 1.0 specification was developed cooperatively by the founding members and is based in large part on the PGI Accelerator programming model. The Open ACC Application Program Interface (API) 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, providing portability across operating systems, host CPUs and accelerators. By using directives, developers can have a single code base that is multi-platform and multi-vendor compatible, a key advantage for cross-platform and multi-generation application development.
Using Open ACC, parallel programmers can offload code from a host CPU to an attached accelerator by using hints, known as directives, to identify areas of code suitable for acceleration. In addition to exposing parallelizing opportunities to the compiler, directives can also be used to specify the details of how to efficiently map loops to a particular accelerator and how to optimize data movement. Directives free the developer to focus on algorithms and application functionality while the compiler does the detailed work of offloading computations onto an accelerator. The principle benefit of directives is significant improvements to application performance without requiring modification to the underlying source code.
PGI Accelerator Compilers with Open ACC Support
First announced in 2008, the PGI Accelerator compilers augment the Open ACC standard in several areas to provide enhanced functionality and flexibility including:
- Auto-generation of optimized loop schedules
- Automatic use of shared memory
- Automatic sum reductions
- Interoperability with CUDA Fortran and CUDA C/C++
- PGI Unified Binary™ technology executable files that work in the presence or absence of an accelerator.
In addition, PGI Accelerator compilers include PGI’s complete suite of x86 host-performance optimization technologies including automatic SIMD vectorization, auto-parallelization, interprocedural analysis, function in lining and more.
Currently, PGI Accelerator Fortran and C99 compilers support x64+NVIDIA systems running under Linux, OS X and Windows; the compilers are supported on all Intel and AMD x64 processor-based systems with CUDA-enabled NVIDIA GPUs. Open ACC support will be included in PGI Release 2012 version 12.6 and later. It is available free of charge to PGI Accelerator licensees with a current PGI subscription. A free trial version is available from the PGI website at www.pgroup.com/support/trial.htm. More information on the PGI Accelerator compilers with Open ACC is available at http://www.pgroup.com/accelerate. More information on the Open ACC API and standard can be found at www.openacc.org.