PGI Release 8.0 Features and Performance

  • Full support for the OpenMP 3.0 parallel programming standard for multi-core x64 CPUs and multi-socket servers, including full support for task constructs in PGF95 and PGCC (watch the OpenMP 3.0 and Task Parallelization video [time: 4:18])
  • (NEW) Common Compiler Feedback Format (CCFF) is now supported by all PGI 8.0 compilers; CCFF is a standardized format for storing and reporting of optimization information and hints to users
  • Improved PGPROF performance analysis and tuning tool fully utilizes CCFF (watch the PGPROF 8.0 New Features video [time: 7:50])
    • (NEW) Browse-able CCFF information correlated with source code
    • (NEW) Calculates Compute Intensity to identify regions of code suitable for multi-core parallelization and/or offloading to a GPU accelerator
    • Improved multi-core scalability analysis using hardware counters on Linux
    • Improved performance of PGPROF timer-instrumented executables
    • All new look-and-feel with intuitive navigation and analysis features
  • (NEW) Provisional support for x64+GPU on 64-bit Linux for CUDA-enabled NVIDIA GPUs using the new high-level PGI Accelerator Compilers programming model
  • Compiler optimizations and features
    • (NEW) Computation and reporting of compute intensity of loops in all languages
    • Packed SSE code generation for unrolled loops
    • SSE vectorization of generalized reduction loops
    • Improved scalar prefetching, spill tuning and live range splitting
    • Improved static estimation of block execution frequencies
    • PGC++ STL is now thread safe; based on STLPort 4.6.2
    • Incremental support for OpenMP 3.0 features in PGC++
    • GCC variadic macro extensions
    • Auto-generation of DWARF for improved tools interoperability
    • Enhanced Fortran 95 DWARF generation
  • PGDBG debugger enhancements
    • OpenMP 3.0 debugging, including support for TASKs
    • OpenMPI debugging on Linux clusters with the PGI CDK
    • OpenMPI debugging on MacOS (a version of OpenMPI is now bundled with PGI Workstation 8.0 for MacOS)
    • Debug OpenMP & auto-parallelized multi-core applications on MacOS
    • Numerous reliability and performance enhancements
  • PGI Visual Fortran (PVF) now integrated with Microsoft Visual Studio 2008
  • (NEW) New PGI License Setup tool simplifies license installation and configuration. The PGI License Setup tool is included with all PGI products for Windows.
  • Expanded platform support
    • Support for the new Quad-Core AMD Opteron processor (AMD Shanghai)
    • PGI Unified Binary™ support for the latest AMD and Intel processors
    • Fedora 8, Fedora 9, SuSE 10.3, SLSE 11.0, and Ubuntu 8 Linux
    • Microsoft Vista 32-bit and 64-bit, Microsoft HPC Server 2008
    • Mac OS X Leopard 32-bit and 64-bit for x86
  • Updated documentation including the PGI User's Guide, PGI Tools Guide and PVF User's Guide

Complete details are included in the PGI Workstation Release Notes, the PGI Visual Fortran Release Notes and the PGI CDK Release Notes.


What are the latest releases?

The current PGI release versions are

  PGI Workstation and PGI Server for Linux   8.0-6, update April 24, 2009
  PGI CDK® for Linux   8.0-6, update April 24, 2009
  PGI Workstation and PGI Server for Windows   8.0-6, update April 24, 2009
  PGI Workstation and PGI Server for Windows SUA 32   8.0-1, updated November 14, 2008
  PGI Workstation and PGI Server for Windows SUA 64   8.0-1, updated November 14, 2008
  PGI Workstation and PGI Server for Windows SFU 32   8.0-1, updated November 14, 2008
  PGI Visual Fortran®   8.0-6, update April 24, 2009
  PGI CDK® for Windows   8.0-6, update April 24, 2009
  PGI Workstation for Mac OS X   8.0-6, update April 24, 2009

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.


Which Fortran 2003 features to you support?

  • Fortran 2003 ISO_C_BINDING—The ISO_C_BINDING module is partially implemented. The BIND attribute is supported for derived types and constant kind definitions are provided that map to C types. For procedures, the VALUE and BIND attributes are supported, as well as the BIND attribute for global data. The procedure C_LOC is supported, which returns the C address of an object. Other procedures in ISO_C_BINDING, such as C_ASSOCIATED, are not yet implemented.
  • Fortran 2003 Allocatable Regularization—Fortran 2003 allocatable regularization is implemented in PGF95 and is always enabled. These changes allow allocatable arrays to be passed as dummy arguments, to be returned from functions, and to be components of derived types.
  • Fortran 2003 Allocatable Array Assignment—Fortran 2003 allocatable array assignment is available in PGF95. The default is to use the Fortran 95 assignment semantics; however, the option -Mallocatable=03 enables the Fortran 2003 assignment semantics.
  • Fortran 2003 Asynchronous Input/Output—Fortran 2003 asynchronous I/O is partially implemented in PGF77 and PGF95 compilers. For external files opened with ASYNCHRONOUS='YES in the OPEN statement, asynchronous I/O is allowed for external files opened with ASYNCHRONOUS='YES' in the OPEN statement. Asynchronous I/O operations are indicated by ASYNCHRONOUS='YES' in READ and WRITE statements. The compilers do not implement the ASYNCHRONOUS attribute or ASYNCHRONOUS statement.
  • Fortran 2003 Stream Input/Output—Fortran 2003 Stream access I/O is implemented.
  • -Mallocatable=[95|03]—The -Mallocatable option controls how the compiler treats assignment of allocatables. The default behavior is to use Fortran 95 semantics; the 03 option instructs the compiler to use Fortran 2003 semantics.


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

The license file will have 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 or 8.000 in it. This is the highest release this license will support. Currently, you should have a 7.200. To use the newest release, you will need to update your license keys for 8.0. Note: Any release prior to the value in the field should work with the license.


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

The subscription information is summarize on your PIN management page. Click a PIN for account information including subscription expiration, release number and current license keys. Note: If you qualify for release 8.0-1, for example, you will also qualify for 8.0-2, 8.0-6, and so on when/if they occur.


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


How does this release differ from the previous release?

  • The 8.0 uses a new type of license file, and this will require using the 11.5 version of pgroupd. Make changes to your lciense server, in order for the 8.0 license file to support older releases as well.
  • The 8.0 release, currently available in the download section will now support SUSE 11.0, Red Hat Enterprise Linux 5.2, and Fedora Core 9, for 64-bit on AMD64 or EM64T.
  • The current release supports quad-core AMD Shanghai and the latest multi-core Intel systems.
  • The current release has no limit on the number of threads an OpenMP supports.
  • The current release supports module load builds, a style of program compilation and linking (like makefiles) that some sites have requested (note: do not confuse this with Fortran 95 modules). Those sites can download and will know how to edit and install the Module TCL script as file 8.0 in a directory named pgi so that
    module load pgi/8.0
    
    works as expected.
  • Further information can be found in the 8.0 Release Notes located in the documentation section.

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