PGI 2014 Features and Performance

  • PGI Accelerator OpenACC Fortran/C/C++ Compilers
    • Support for CUDA 5.5 and NVIDIA Kepler K40 GPUs
    • Support for AMD Radeon GPUs and APUs
    • Native LLVM compilation for NVIDIA and AMD GPUs
    • New OpenACC features supported include:
      • Procedure calls (Routine directive); not in C++ or on Radeon
      • Unstructured data lifetimes (Enter_data, Exit_data directives)
      • Host_data directive
      • Create and device_resident clauses for the Declare directive
      • Fortran deviceptr data clause
      • Multidimensional dynamically allocated C/C++ arrays
      • OpenACC 2.0 API
      • Ability to call CUDA Fortran atomic functions on NVIDIA GPUs
    • PGI Unified Binary for OpenACC programs across NVIDIA and AMD GPUs
  • PGI Accelerator CUDA Fortran
    • Support for CUDA 5.5 on NVIDIA Kepler GPUs
    • GPU-side debugging using Allinea DDT now and TotalView later in 2014
    • Full support for CUDA atomic functions
    • Native LLVM compilation for NVIDIA GPUs
  • Multi-core x64 Optimizations
  • New Language Features and Additions
    • Fortran 2008 long integers, recursive I/O, type statement for intrinsic types, impure elemental functions, F2008 CONTIGUOUS, ISO_FORTRAN_ENV and ISO_C_BINDING.
    • GNU compatible C++ improved inlining, Boost and Trilinos correctness and OpenACC robustness.
  • PGI Visual Fortran
    • Fully integrated with Visual Studio 2013, supported on Windows 8.1, including support for OpenACC and CUDA Fortran on NVIDIA Tesla GPUs, and full native OpenACC on AMD Radeon GPUs.
    • Includes the new Visual Studio 2013 shell.
  • Updated Libraries
    • MPICH 3.0.4, Open MPI 1.7.3 and MVAPICH2 1.9 are pre-built and validated with the PGI compilers
    • BLAS and LAPACK pre-compiled libraries based on LAPACK 3.4.2.
    • Pre-compiled 64-bit ScaLAPACK 2.0.2 library for Linux and OS X.
    • Microsoft HPC Pack 2012 MS-MPI version 4.1 for 64-bit and 32-bit Windows only
  • Updated Examples and Tutorials
    • Comprehensive suite of new and updated code examples and tutorials covering Fortran 2003, CUDA Fortran, CUDA-x86, OpenACC, OpenMP parallelization, auto-parallelization and MPI.
  • Expanded Operating System Support
    • including Ubuntu 13.04, Ubuntu 13.10, Fedora 18, Fedora 19, Fedora 20, CentOS 6.4, RHEL 6, Windows 8.1 and OSX Mavericks.
  • Updated Documentation

Complete details are included in the PGI Release Notes and the PGI Visual Fortran® Release Notes.


What are the latest release versions?

The current PGI 2014 release versions are:

  PGI Workstation™ and PGI Server™ for Linux   14.10, released October 22, 2014
  PGI CDK® for Linux   14.10, released October 22, 2014
  PGI Workstation and PGI Server for Windows   14.10, released October 22, 2014
  PGI Visual Fortran for Windows   14.10, released October 22, 2014
  PGI Workstation for OS X   14.10, released October 30, 2014

Download the current release or download an older release from the PGI archive.


How do I get the latest release?

PGI products are available in the download section. There is also a link after you log in to your account.


How do I find out if my license will work with the current release?

Previously, a PGI license file had a field with 3.000, 3.100, 3.200, 3.300, 4.000, 4.100, 5.000, 5.100, 5.200, 6.000, 6.100, 6.200, 7.000, 7.100, 7.200, 8.000, 9.000 or 10.2 in it. This number represents the highest release this license will support along with all previous releases. (Note: Since 7.0, licenses are compatible with releases back to 5.1—older releases may need the older license format).

With the PGI 2010 release version 10.3, PGI license files use a form of your subscription expiration date as the release number. These licenses will work with any software that is issued before this expiration date. For example, a license with a subscription expiration date of December 25, 2010, will include "2010.1225" as the version in the license.dat file. A new PGI compiler release issued, for example, on June 9, 2010, and called version 10.6, will work with any license that has a subscription date of 2010.0601, or the first day of June 2010. The new compiler releases will work with any license that expires on the first day of the release month, or any date after that. Old releases also work with a new license format because their release version "date" (e.g. 7.200) is also 'before' the subscripton expiration date of 2010.1225.


How do I find out if I qualify for a current release license?

Your subscription information is summarized on your PIN management page. Click any PIN in the list for information about that PIN including subscription expiration date, release number and current license keys. Note that current release licenses use the expiration date of the subscription as the date of the newest release the license will support. If your subscription is current you will not need to generate a new license for a new release. A release for example, 10.5, which came out May 8, 2010, has a release version date of 2010.0501 (the first day of May). A license with subscription expiration date of June 14, 2011, will have a license with a FEATURE or PACKAGE line value of 2011.0614. This license should work with the 10.5 release, along with all releases that are released on or before June 30, 2010.


What is a subscription?

The PGI Subscription Service entitles the subscriber to new licenses for new releases. Typically, a subscription is valid for one year from date of purchase. New license purchases include 30 days of subscription service. If you did not purchase a subscription when you purchased your license, or if your subscription has expired, you can qualify for the current relase by bringing your subscription current. You may also wish to read the PGI Subscription Service Agreement.


Any known problems with the recent releases?

  • 32-bit executables that use libpthreads may fail on 64-bit Linux systems because libpthreads reduces stack size to 2MB. This is a Linux limitation. libpthreads is used by routines compiled -mp or -Mconcur. 64-bit executables do not experience this limitation.
  • Some users linking with libpthreads (-mp or -Mconcur) have seen the error message symbol _h_errno, version GLIBC_2.2.5 not defined in file libc.so.6 with link time reference This can be worked around with the environment variable LD_ASSUME_KERNEL export LD_ASSUME_KERNEL=2.4.1 or export LD_ASSUME_KERNEL=2.2.5 for example.
Click me