What compilers are available on the IU research systems?

Following is a brief outline of the compilers available on the research computing systems at Indiana University:

On this page:


Big Red II

Big Red II provides programming environments for the Cray, Intel, PGI, and GNU Compiler Collection (GCC) compilers. Each programming environment defines system paths and environment variables specific to its associated compiler collection. The Cray programming environment module (PrgEnv-cray) is loaded by default on Big Red II. To use one of the other compiler collections, you need to replace the PrgEnv-cray module with the appropriate programming environment module:

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

Once the desired programming environment module is loaded, you can compile your code on the login node. However, to compile code that will run on Big Red II's compute nodes, you must use one of Big Red II's proprietary compiler driver commands (cc, CC, or ftn) to invoke, respectively, the desired C, C++, or Fortran compiler.

Important:
Do not directly invoke the Cray, GCC, Intel, or PGI compilers when compiling programs that you want to run on Big Red II's compute nodes. Invoking a compiler directly instead of using the appropriate compiler driver command (e.g., using pgCC or g++ instead of CC) will result in an executable incapable of running on Big Red II's compute nodes. Invoke compilers directly only when you're compiling programs intended to execute on Big Red II's login or service 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 information about each compiler driver command, see its manual page:

Compiler driver command Function 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

For more, see Compiling C, C++, and Fortran programs on Big Red II and Big Red II+ at IU.

Karst, Carbonate, and Mason

The GNU Compiler Collection (GCC), the Intel Compiler Suite, and Portland Group (PGI) compilers are available on Karst, Carbonate, and Mason. 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 (GCC)
    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 wrapper compilers: Open MPI and MPICH wrapper compilers are available for compiling parallel versions of C, C++, and Fortran codes. A wrapper compiler transparently adds 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 wrapper compilers are available, on the command line, enter one of the following:

      module avail openmpi
      module avail mpich
    

For more, see Compiling programs on Karst, Carbonate, or Mason at IU.

Getting help

Support for IU research computing systems, software, and services is provided by various UITS Research Technologies units. For help, see Research computing support at IU.

This is document abby in the Knowledge Base.
Last modified on 2017-07-24 16:44:42.

  • Fill out this form to submit your issue to the UITS Support Center.
  • Please note that you must be affiliated with Indiana University to receive support.
  • All fields are required.

Please provide your IU email address. If you currently have a problem receiving email at your IU account, enter an alternate email address.

  • Fill out this form to submit your comment to the IU Knowledge Base.
  • If you are affiliated with Indiana University and need help with a computing problem, please use the I need help with a computing problem section above, or contact your campus Support Center.

Please provide your IU email address. If you currently have a problem receiving email at your IU account, enter an alternate email address.