Compilers available on the IU research supercomputers

On this page:


Big Red 3

Programming environments for the Cray, Intel, PGI, and GNU Compiler Collection (GCC) compilers are provided. Each programming environment defines system paths and environment variables specific to its associated compiler collection:

Programming environment module Compiler collection
PrgEnv-cray Cray
PrgEnv-intel Intel
PrgEnv-pgi PGI
PrgEnv-gnu GCC

Once the desired programming environment module is loaded, use the appropriate compiler driver command to invoke the desired compiler; for information about each compiler driver command, see its manual page:

Compiler driver command Description Manual page
cc Invokes the C compiler for the currently loaded programming environment man cc
CC Invokes the C++ compiler for the currently loaded programming environment man CC
ftn Invokes the Fortran compiler for the currently loaded programming environment man ftn
Note:
  • To compile a program that will run on the compute nodes, you must use the appropriate compiler driver command. Do not directly invoke the Cray, GCC, Intel, or PGI compilers unless you intend to run your executable only on the login or service nodes. For example, if you compile a C++ code using pgCC or g++ compiler instead of the CC compiler driver command, the resulting executable will not run on the compute nodes.
  • The only switches that are common to all three compiler driver commands (and work across all programming environments) are -shared, -static, -dynamic, and -hugetlbfs (which links 2 MB pages instead of the default 4 KB). Additionally, the Fortran compiler driver has a -default64 switch available that works across all programming environments; it promotes all integers and real numbers to a 64-bit default, and is compatible with the 64-bit MPI libraries.

For more, see Compile programs on Big Red 3 at IU.

Carbonate

The GNU Compiler Collection (GCC), the Intel Compiler Suite, and Portland Group (PGI) compilers are available on Carbonate. Open MPI and MPICH wrapper compilers also are available for compiling parallel programs.

  • GNU Compiler Collection (GCC): The GNU Compiler Collection (GCC) includes compilers for C, C++, and Fortran codes:
    GNU Compiler Collection
    Language Compile command Manual page
    C gcc man gcc
    C++ g++ man g++
    Fortran gfortran man gfortran

    To see which versions are available, on the command line, enter:

    module avail gcc
    
  • Intel Compiler Suite: The Intel Compiler Suite includes compilers for C, C++, and Fortran codes:
    Intel Compiler Suite
    Language Compile command Manual page
    C icc man icc
    C++ icpc man icpc
    Fortran ifort man ifort

    To see which versions are available, on the command line, enter:

    module avail intel
    
  • Portland Group (PGI) compilers: The Portland Group (PGI) compilers are available for C, C++, and Fortran codes:
    Portland Group (PGI) compilers
    Language Compile command Manual page
    C pgcc man pgcc
    C++ pgCC man pgCC
    Fortran 77
    Fortran 90/95
    pgf77
    pgfortran
    man pgf77
    man pgfortran

    To see which versions are available, on the command line, enter:

    module avail pgi
    
  • Open MPI and MPICH compilers: Open MPI and MPICH compilers are available for compiling parallel versions of C, C++, and Fortran codes. The compiler commands are wrapper scripts that transparently add the flags needed to compile and link a parallel application, and then invokes the underlying compiler to actually compile the application.
    MPI/MPICH wrapper compilers
    Language Wrapper compiler Manual page
    C mpicc man mpicc
    C++ mpic++ man mpic++
    Fortran mpifort man mpifort

    To see which compilers are available, on the command line, enter one of the following:

    module avail openmpi
    module avail mpich
    

For more, see Compile programs on Carbonate at IU.

Quartz

The GNU Compiler Collection, the Intel Compiler Suite, NVIDIA HPC compilers, and MVAPICH compilers are available on Quartz.

  • GNU Compiler Collection: The GNU Compiler Collection (the gnu module) is added by default as part of the standard user environment on Quartz. It includes compilers for C, C++, and Fortran codes:
    GNU Compiler Collection
    Language Compile command Manual page
    C gcc man gcc
    C++ g++ man g++
    Fortran gfortran man gfortran
  • Intel Compiler Suite: The Intel Compiler Suite includes compilers for C, C++, and Fortran codes:
    Intel Compiler Suite
    Language Compile command Manual page
    C icc man icc
    C++ icpc man icpc
    Fortran ifort man ifort

    To add the Intel compilers to your user environment on Quartz, load the intel module; on the command line, enter:

    module load intel
  • NVIDIA HPC compilers: NVIDIA HPC compilers are available for C, C++, and Fortran codes:
    NVIDIA HPC compilers
    Language Compile command Manual page
    C nvc man nvc
    C++ nvc++ man nvc++
    Fortran nvfortran man nvfortran

    To add the NVIDIA HPC compilers to your user environment on Quartz, load the nvhpc module; on the command line, enter:

    module load nvhpc
  • MVAPICH compilers: MVAPICH compilers for compiling parallel versions of C, C++, and Fortran codes are loaded by default as part of the standard user environment on Quartz. The compiler commands are wrapper scripts that transparently add the flags for compiling and linking a parallel application, and then invoke the underlying compiler to actually compile the application:
    MVAPICH compilers
    Languages Compiler commands Manual pages
    C mpicc man mpicc
    C++ mpiCC
    mpiCC
    man mpicxx
    man mpicxx
    Fortran mpif77
    mpif90
    man mpif77
    man mpif77

Get help

Support for IU research supercomputers, software, and services is provided by various teams within the Research Technologies division of UITS.

For general questions about research computing at IU, contact UITS Research Technologies.

For more options, see Research computing support at IU.

This is document abby in the Knowledge Base.
Last modified on 2021-09-21 17:08:30.