Note: PGI compiler are now integrated in NVIDIA HPC SDK. PGI installation won't be updated.

PGI Workstation™ is PGI's single-user compiler bundle. PGI Workstation is available in three language configurations: 

  • PGI Fortran Workstation—Fortran only
  • PGI C/C++ Workstation—C and C++ only
  • PGI Fortran/C/C++ Workstation—combined Fortran and C/C++

PGI Fortran Workstation includes the native parallelizing/optimizing Fortran 2003 compiler with support for OpenMP 3.1 directive-based parallel programming for multi-core CPUs, and OpenACC 2.0 directive-based parallel programming for accelerators. The PGI Fortran compiler includes CUDA Fortran extensions targeting NVIDIA CUDA-enabled GPUs.

PGI C/C++ Workstation includes the native parallelizing/optimizing ANSI C11 and GNU-compatible C++11 compilers. Both compilers implement full OpenMP 3.1 pragma-based parallel programming for multi-core CPUs, and OpenACC 2.0 pragma-based parallel programming for accelerators. The PGI C++ compiler is substantially compatible with GNU GCC 4.8 g++ and includes full support for NVIDIA CUDA C extensions targeting multi-core CPUs as a compute device (CUDA-x86). All C++ functions are compatible with PGI-compiled Fortran and C functions, so you can compose programs from components written in all three languages.

Information

  • Sourcehttp://www.pgroup.com/
  • License: commercial
  • Code: Fortran, C/C++
  • Path:  /opt/pgi/<year>  
  • Platforms: Linux (no licenses for other platforms)
  • Licensing: concurrent.
  • License server: zitlic01.desy.de only accessible from within the DESY network
  • Downloads:  @DESY or /afs/desy.de/products/source/pgi.
  • Downloads@PGROUP (admins only)

Using PGI compilers

Some PGI compile commands are available as versioned scripts in /usr/local/bin. Compilers can be invoked as (depending on available versions)

[elx]% /usr/local/bin/pgf90_2011 
[elx]% /usr/local/bin/pgcc_2015


To use unversioned commands, the environment for PGI Compilers can be initialized with the module command: 

[elx]% module avail
[elx]% module load pgi             # load the current version
[elx]% pgf90 --version
pgf90 15.4-0 64-bit target on x86-64 Linux -tp sandybridge 
The Portland Group - PGI Compilers and Tools
Copyright (c) 2015, NVIDIA CORPORATION.  All rights reserved.


[elx]% module load pgi/2014        # load a specific version
[elx]% pgcc --version
pgcc 14.10-0 64-bit target on x86-64 Linux -tp sandybridge 
The Portland Group - PGI Compilers and Tools
Copyright (c) 2014, NVIDIA CORPORATION.  All rights reserved.


Please note: unlike most other compilers, the PGI compilers will optimize the executable for the local hardware (sandybridge in the example above) - unless explicitly specified. This might be particularly confusing on virtual machines occasionally reporting the wrong CPU type. To produce a generic executable use flags like 

[elx]% CFLAGS="-tp=x64" FFLAGS="-tp=x64" CC=pgcc_2015 F77=pgf95_2015 CXX=pgcc_2015 CCC=pgCC_2015 ./configure 

Installing PGI compilers

Installer for pgi compilers are available from the download folder or /afs/desy.de/products/source/pgi.