PGI 2017 Features and Performance

  • PGI Accelerator OpenACC Compilers
    • New OpenACC 2.5 features:
      • Added if_present clause to the update directive
      • Added finalize clause to the exit data directive
      • Added new init, shutdown and set directives
      • Added new API routines to get and set the default async queue value
      • Added support for the redefined routine bind clause
    • Behavior changes:
      • Changed exit data directive behavior to decrement dynamic reference count
    • Improved performance of the cache directive
    • Added support for CUDA 8.0; CUDA 7.5 is now default
    • Support for compute capability 2.0 (Fermi) devices no longer included by default
  • PGI C++ Compiler
    • Comprehensive support of C++14, requires GCC version 5.1 or greater; full interoperability with GCC 5.1 through 6.2
    • Added C++11 support when used as the nvcc host compiler; requires updated nvcc
    • Improved exception handling
  • PGI Fortran Compiler for OpenPOWER CPUs
    • Preliminary support for OpenMP 4.5 on OpenPOWER CPUs; GPU offload not yet supported
    • Average performance improvements of 5–10% on floating-point intensive codes
  • All PGI Compilers
    • Floating point divides are now guaranteed to be uniform for both scalar and vector operations
    • Additional tuned numerical math intrinsic functions for Intel Haswell and Broadwell x86 CPUs
    • Improved inlining
  • PGI Tools
    • PGDBG debugger supports variable rollover
    • Updated Eclipse plug-in for use with Neon and Mars (x86) and Mars and Luna (OpenPOWER)
  • Libraries
    • Linux products now ship with pre-built Open MPI 1.10.2; MVAPICH 2.2 and MPICH 3.2 available to current support subscribers
    • Pre-built versions of NetCDF 4.4.1.1 and Parallel NetCDF 1.7.0 available online
    • Pre-built versions of the Earth System Modeling Framework (ESMF) 7.0.0 available online; one per PGI-built MPI distribution
  • Other Features, Changes and Additions
    • New operating systems supported include Fedora 24, RHEL 7.2, Ubuntu 16.10, macOS 10.12 Sierra and Windows Server 2016
  • Deprecations and Eliminations
    • PGI 2017 supports 64-bit operating systems only. Compiling 32-bit applications for execution on either 32-bit or 64-bit operating systems is ot longer supported on any platform
    • PGI 2017 for macOS no longer supports CUDA Fortran or OpenaCC running on GPUS, or CUDA-x86 running on CPUs. OpenACC targeting multi-core CPUs is still supported on all platforms including macOS.
    • Dropped CUDA 7.0 toolkit support
    • Dropped support for macOS 10.7 (Lion) and 10.8 (Mountain Lion)

Complete details are included in the PGI Release Notes.


What are the latest release versions?

The current PGI release versions are:

PGI Professional Edition for Linux x86-64   17.5 released May 30, 2017
PGI Professional Edition for Linux OpenPOWER   17.5 released May 30, 2017
PGI Professional Edition for Windows   17.5 released May 30, 2017
PGI Visual Fortran® for Windows   17.5 released May 30, 2017
PGI Community Edition   17.4 released April 30, 2017

How do I get the latest release?

For-fee licensees with active PGI Support can download the current release. All for-fee licensees can download archive releases.

Others can download the PGI Community Edition at no cost.


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 suppprt 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 support 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 support 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 support service information is summarized on your PIN management page. Click any PIN in the list for information about that PIN including support expiration date, release number and current license keys. Note that current release licenses use the support expiration date as the date of the newest release the license will support. If your support 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 support 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 PGI Support?

The PGI Support Service entitles the subscriber to new licenses for new releases. Typically, support is valid for one year from date of purchase. New license purchases include 30 days of support service. If you did not purchase support when you purchased your license, or if your support has expired, you can qualify for the current release by bringing your support current. You may also wish to read the PGI Support 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