PGI 2015 Features and Performance

  • PGI C++ Compiler
    • PGC++ (pgc++) is now default on Linux and OS X. Features include GNU compatible name mangling and language features supporting g++ versions 4.2-4.8.
    • Full support for C++11 on Linux and OS X. New C11 features include:
      • Lambdas
      • Alignof/alignas
      • No return
      • Type generics
      • Thread-local storage (TLS)
      • Long double using x87 80-bit arithmetic
    • OpenACC class methods implicitly compiled for device execution, reference class/struct members allowed in data clauses and compute regions, manual deep copy of classes/structs with enter/exit data pragmas.
    • OpenACC implicit deep copy using CUDA Unified Memory on NVIDIA GPUs (64-bit Linux preview feature available from the download page.)
    • pgc++ is also now supported as an NVCC host compiler on Linux
  • PGI Fortran Compiler
    • Incremental Fortran 2008 features including:
      • ERF/ERFC
      • Inverse hyperbolic functions
      • Bessel functions
      • Storage size intrinsic
    • Support for Fortran automatic arrays in OpenACC routines and CUDA Fortran
    • New tuned CUDA Fortran intrinsics: sum, maxval, minval
    • New CUDA Fortran cuSPARSE module with interfaces to cuSPARSE library
  • PGI Accelerator OpenACC Fortran/C/C++ Compilers
    • Comprehensive OpenACC 2.0 support including:
      • Cache directive
      • Auto loop clause
      • Device_type clause
      • Collapse clause
      • Firstprivate clause
      • Gang(num:) and gang(static:) loop subclauses
      • Reduction in routine clause
      • Use of complex data types in reduction clause
    • Support for OpenACC CUPTI-based profiling with the PGI_ACC_TIME environment variable
    • PGI OpenACC Unified Memory Evaluation Package for Linux
    • New OpenACC SDK examples
  • Updated pre-compiled MPICH, MVAPICH and Open MPI libraries
  • New top-level PrgEnv-pgi environment module
  • New operating system support including Ubuntu 14.10, Fedora 21, CentOS 7, RHEL 7 and OS X Yosemite
  • Updated Free PGI for OS X package

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 2015 release versions are:

  PGI Workstation™ and PGI Server™ for Linux   15.10 released October 28, 2015
  PGI CDK® for Linux   15.10 released October 28, 2015
  PGI Workstation and PGI Server for Windows   15.10 released October 28, 2015
  PGI Visual Fortran for Windows   15.10 released October 28, 2015
  PGI Workstation for OS X   15.10 released October 28, 2015

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