The Portland Group announced availability of the 2012 release of the PGI line of high-performance parallelizing compilers and development tools for Linux, OS X and Windows. PGI 2012 is the first general release to include support for the OpenACC directive-based programming model for NVIDIA CUDA-enabled Graphics Processing Units (GPUs). This release is also the first to include the fully feature-enabled PGI CUDA C/C++ compiler for multi-core x64 CPUs from Intel and AMD. In addition, PGI 2012 includes a number of performance and feature enhancements for multi-core x64 processor-based HPC systems.

“GPU Accelerators are now a mainstay in HPC with NVIDIA's CUDA achieving the widest adoption so far”, said Douglas, Miles, director of The Portland Group. “With Release 2012, PGI continues to supplement and refine its GPU programming tools so developers wishing to access the huge potential performance of GPUs can do so in a productive and portable way”

First announced in 2008, the PGI Accelerator Fortran and C compilers provide a directive-based high-level approach to GPU programming. Targeting scientists and engineers who are not full time programmers, the PGI Accelerator programming model frees developers from the tedious aspects of GPU programming and lets them focus instead on optimizing their algorithms. Other benefits compared to low-level GPU programming models include enhanced productivity (many developers see performance gains in just minutes) and improved source code portability achieved by retaining compatibility across GPUs and CPUs. PGI 2012 includes full support for the PGI Accelerator 1.3 specification including asynchronous data transfer and kernel launch directives, and enhanced data management capabilities.

Users reporting about their experiences with PGI Accelerator: “I have written micro-magnetic codes (written in Fortran 90) to study the properties of two and three dimensional magnetic systems. The directives approach enabled me to port my existing code with ease to perform my computations on the GPU which resulted in a significant speedup (more than 20 times) of the computation,” said Professor M. Amin Kayali from University of Houston. And Panos Labropoulos from the University of Groningen and ASTRON reports, “My main interest is the calibration and imaging using data from radio arrays and in particular LOFAR ( Such an array consists of tens to hundreds of thousands on relatively simple dipole antenna elements that collect low frequency astronomical signals. With directives and GPUs, we were able to accelerate the code by nearly 6x in 5 days. This speed-up is significant because it allows us to process this enormous amount of data (using many nodes, each with a couple GPUs), in a reasonable amount of time. It will save us years of work.”

In addition to enhancements to the PGI Accelerator programming model, PGI 2012 also introduces support for the OpenACC Application Programming Interface (API). Announced by NVIDIA, Cray, CAPs and PGI in November 2011, the OpenACC API is an industry-wide effort to standardize accelerator programming based on compiler directives. Based in large part on the PGI Accelerator programming model, the OpenACC API provides a hardware independent methodology for programming accelerators, co-processors and related offload engines. Currently, PGI is conducting a closed evaluation of its first Fortran and C compilers to include support for a subset of the OpenACC 1.0 specification. A public evaluation will be available in March. PGI expects to ship fully OpenACC version 1.0 conformant compilers by mid-year 2012.

Other features and enhancements in PGI 2012 include expanded support for the new Advanced Vector Extensions to the x64 instruction set architecture (AVX) in the latest Intel Sandy Bridge and AMD Bulldozer CPUs, improved auto-parallelization support, support for recursive I/O (part of the Fortran 2003 language standard), a new GNU compatible C++ compiler with all PGI features and optimizations, OpenMP nested parallelism, remote cluster debugging support and Eclipse integration of the PGI C/C++ compilers on Linux. Additional GPU programming features new in PGI 2012 include support for the latest CUDA 4.1 release and support for several of the new features in the latest generation of NVIDIA CUDA-enabled GPUs including asynchronous data transfers and kernel launch. New in CUDA Fortran is the ability to specify a stream identifier in CUF kernels. Finally, PGI 2012 includes the fully featured, performance optimized PGI CUDA C/C++ compiler for x86. Developed in collaboration with NVIDIA and announced at the NVIDIA GPU Technology Conference in Beijing, China last December, CUDA-x86 processes CUDA C/C++ as a native parallel-programming language for general-purpose multi-core x86 microprocessors from AMD and Intel.

PGI 2012 supports the latest operating system releases including Red Hat Enterprise Linux 6.2, Fedora 16, SLES 11 SP1, Ubuntu 11.10 and Apple OS X Lion.

More information about the PGI Accelerator and OpenACC programming models are available online at PGI CUDA Fortran information is available separately at

CUDA-x86 information is also available at Evaluation copies of the new PGI 2012 compilers are available from The Portland Group web site at Registration is required. 


Posted by Janine E. Mooney, Editor

March 5, 2012