PGI Release 9.0 Features and Performance

  • (NEW) PGI Accelerator x64+GPU Fortran and C99 compilers support directive-based programming of x64+NVIDIA Linux systems; PGF95 and PGCC accelerator compilers are supported on all Intel and AMD x64 processor-based systems with CUDA-enabled NVIDIA GPUs and enable incremental porting and tuning of Fortran and C programs from multi-core x64 to x64+GPU platforms.
  • Fortran 2003 incremental features including (see list below). High-speed POPCNT, POPPAR, and LEADZ on architectures with explicit instructions to support these functions.
  • PGC++/ PGCC enhancements including full support for OpenMP 3.0 with tasks in C++, GNU link once support, C++ compile speed improved by up to 20%, and support for the _m128 data type in the PGCC C99 compiler.
  • (NEW) PGI Visual Fortran MSMPI debugging enhancements enable users to build, run, and debug MSMPI Fortran programs on either a local Windows laptop or workstation, or a distributed-memory cluster running Microsoft Windows HPC Server 2008 all from within the Visual Studio 2005 or 2008 integrated development environment (IDE). Other PVF enhancements include performance improvements in serial debugging and disassembly, Fortran 2003 incremental enhancements, and Intel Core i7 (nehalem) support and optimizations.
  • PGPROF parallel MPI/OpenMP performance analysis and tuning tool
    • New data collection mechanism via pgcollect enables profiling without re-compiling or any special software privileges
    • Support for profiling of code in shared object files
    • Updated GUI with tabbed access to multiple source files and improved drill-down to assembly code
    • Support for profiling of binaries compiled by non-PGI compilers
  • PGDBG parallel MPI/OpenMP debugger all-new graphical user interface (GUI)
    • All new look-and-feel with intuitive navigation and usage features
    • Single easy-to-use menu bar replaces multiple menu bars in previous GUI
    • Tabbed panes for fast and easy switching between source/assembly/mixed debugging views, debugging contexts for multiple threads/processes, and graphical/textual multi-process/multi-thread state information
    • Improved DWARF generation for C/C++ include files, Fortran INCLUDE processing, and Fortran MODULEs
  • Expanded platform support
    • Support for Intel Core i7 (nehalem) processor and for the six-core AMD Opteron processor (Istanbul)
    • PGI Unified Binary™ support for NVIDIA + x64 hosts.
    • PGI Unified Binary™ support for the latest AMD and Intel processors
    • RHEL 5.3, Fedora 10, Fedora 11, SuSE 11, SuSE 11.1, and Ubuntu 9.04 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   9.0-4, updated September 18, 2009
  PGI CDK® for Linux   9.0-4, updated September 18, 2009
  PGI Workstation and PGI Server for Windows   9.0-4, updated September 18, 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®   9.0-4, updated September 18, 2009
  PGI CDK® for Windows   9.0-4, updated September 18, 2009
  PGI Workstation for Mac OS X   9.0-4, updated September 18, 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 do you support?

  • C interoperability. 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. Also supported is the C_F_POINTER subroutine which assigns the C pointer target to the Fortran pointer, and specifies its shape. Other procedures in ISO_C_BINDING, such as C_ASSOCIATED, are not yet implemented. Enumerators are supported.
  • Allocatable Regularization 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.
  • Allocatable Assignments are available for both arrays and scalars. The default is to use the Fortran 95 assignment semantics; however, the option -Mallocatable=03 enables the Fortran 2003 assignment semantics.
  • Fortran 2003 IMPORT statements allows access to entities accessible in the containing scope of the interface body.
  • MOVE_ALLOC() moves an allocation from one allocatable object to another.
  • ISO_FORTRAN_ENV is an intrinsic module that provides information about the Fortran environment through named constants.
  • The number of Fortran intrinsics that have the KIND argument as an optional argument was increased with F2003. (See the PGI Workstation Release Notes for the complete list.) For these intrinsics, when the KIND argument is present, the return value is of the specified kind.
  • VOLATILE attribute and statement. Being VOLATILE indicates to the compiler that, at any time, the variable might change or be examined from outside the Fortran program.
  • Procedure pointers and statements. A procedure statement can be used to declare procedure pointers, dummy procedures, and external procedures. A procedure pointer is a pointer that is associated with a procedure. A procedure pointer may appear as a component of a derived type.
  • Fortran 2003 Asynchronous Input/Output—Fortran 2003 asynchronous I/O is partially implemented in PGF77 and PGF95 compilers. 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 access I/O is implemented.


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, 8.000 or 9.000 in it. This is the highest release this license will support. Currently, you should have a 8.000. To use the newest release, you will need to retrieve updated license keys for 9.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 9.0-1, for example, you will also qualify for 9.0-2, 9.0-6, and so on when/if they occur but this may change in a future release.


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?

  • PGI 9.0 is the first release to include suport for PGI Accelerator™ compilers for x64+GPU. PGI Accelerator Fortran and C99 compilers support directive-based programming of x64+NVIDIA Linux systems and are supported on all Intel and AMD x64 processor-based systems with CUDA-enabled NVIDIA GPUs. PGI Accelerator compilers enable incremental porting and tuning of Fortran and C programs from multicore x64 to x64+GPU platforms. Please see the Accelerator page for additional information.
  • The 9.0 uses a new type of license file that requires using the 11.5 version of pgroupd. You will need to make changes to your license server to allow the 9.0 license file to support older releases as well.
  • The 9.0 release now supports SUSE 11.1, Red Hat Enterprise Linux 5.3, Fedora Core 10 and 11, and Ubuntu 9.04, for 64-bit on AMD64 or Intel 64.
  • The 9.0 release supports six-core AMD Istanbul and the latest Intel Core i7 (nehalem) processors, including the multi-socket Xeon EX systems.
  • The 9.0 and all prior releases support up to 64 OpenMP threads.
  • The 9.0 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 9.0 in a directory named pgi so that

    module load pgi/9.0
    

    works as expected.
  • Further information can be found in the 9.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