Publishing Notice Prior to publishing work performed on Summit, please contact


Available Compilers

  • XL: the IBM XL Compilers, loaded by default.
  • LLVM: the LLVM compiler infrastructure.
  • PGI: the Portland Group compiler suite.
  • GNU: the GNU Compiler Collection.
  • NVCC: the CUDA C compiler.

C compilation

Note: type char is unsigned by default
Vendor Module Compiler Version Enable C99 Enable C11 Default signed char Define macro
IBM xl xlc xlc_r 13.1.6 -std=gnu99 -std=gnu11 -qchar=signed -WF,-D
GNU system default gcc 4.8.5 -std=gnu99 -std=gnu11 -fsigned-char -D
GNU gcc gcc 6.4.0 -std=gnu99 -std=gnu11 -fsigned-char -D
LLVM llvm clang 3.8.0 default -std=gnu11 -fsigned-char -D
PGI pgi pgcc 17.10 -c99 -c11 -Mschar -D

C++ compilations

Note: type char is unsigned by default
Vendor Module Compiler Version Enable C++11 Enable C++14 Default signed char Define macro
IBM xl xlc++, xlc++_r 13.1.6 -std=gnu++11 -std=gnu++1y (PARTIAL) -qchar=signed -WF,-D
GNU system default g++ 4.8.5 -std=gnu++11 -std=gnu++1y -fsigned-char -D
GNU gcc g++ 6.4.0 -std=gnu++11 -std=gnu++1y -fsigned-char -D
LLVM llvm clang++ 3.8.0 -std=gnu++11 -std=gnu++1y -fsigned-char -D
PGI pgi pgc++ 17.10 -std=c++11 –gnu_extensions -std=c++14 –gnu_extensions -Mschar -D

Fortran compilation

Vendor Module Compiler Version Enable F90 Enable F2003 Enable F2008 Define macro
IBM xl xlf
15.1.6 -qlanglvl=90std -qlanglvl=2003std -qlanglvl=2008std -WF,-D
GNU system default gfortran 4.8.5, 6.4.0 -std=f90 -std=f2003 -std=f2008 -D
LLVM llvm xlflang 3.8.0 n/a n/a n/a -D
PGI pgi pgfortran 17.10 use .F90 source file suffix use .F03 source file suffix use .F08 source file suffix -D
Note: * The xlflang module currently conflicts with the clang module. This restriction is expected to be lifted in future releases.


Note: When using OpenMP with IBM xl compilers the thread safe compiler variant is required; These variants have the same name as the non thread safe compilers with an additional _r suffix. e.g. to compile OpenMPI C code one would use xlc_r
Note: OpenMP offloading support is still under active development. Performance and debugging capabilities in particular are expected to improve as the implementations mature.
Vendor 3.1 Support Enable OpenMP 4.x Support Enable OpenMP 4.x Offload
IBM FULL -qsmp=omp PARTIAL -qsmp=omp
GNU FULL -fopenmp PARTIAL -fopenmp
clang FULL -fopenmp PARTIAL -fopenmp
xlflang FULL -fopenmp PARTIAL -fopenmp


Vendor Module OpenACC Support Enable OpenACC
GNU system default NONE NONE
GNU gcc 2.5 -fopenacc
LLVM clang or xlflang NONE NONE
PGI pgi 2.5 -acc, -ta=nvidia:cc70

CUDA compilation


CUDA C/C++ support is provided through the cuda module.
nvcc : Primary CUDA C/C++ compiler

Language support

-std=c++11 : provide C++11 support
–expt-extended-lambda : provide experimental host/device lambda support
–expt-relaxed-constexpr : provide experimental host/device constexpr support

Compiler support

NVCC currently supports XL, GCC, and PGI C++ backends.
–ccbin : set to host compiler location

CUDA Fortran compilation


The IBM compiler suite is made available through the default loaded xl module, the cuda module is also required.
xlcuf : primary Cuda fortran compiler, thread safe
Language support flags
 -qlanglvl=90std : provide Fortran90 support
-qlanglvl=95std : provide Fortran95 support
-qlanglvl=2003std : provide Fortran2003 support
-qlanglvl=2008std : provide Fortran2003 support


The PGI compiler suite is available through the pgi module.
pgfortran : Primary fortran compiler with CUDA Fortran support

Language support:

Files with .cuf suffix automatically compiled with cuda fortran support
Standard fortran suffixed source files determines the standard involved, see the man page for full details
-Mcuda : Enable CUDA Fortran on provided source file