Compilers

The HPC supports four programming environment (PE) modules to easily switch between compilers. Each programming environment contains the full set of compatible compilers and libraries. These compilers are: GNU Collection Compiler (GCC), the Intel compiler, The Portland Group (PGI), and the Numerical Algorithms Group (NAG).

📝 Note: You cannot use more than one PE-module at the same time. For example, if you are working with GNU and then you decide to work with the Intel compiler, first unload the PE-gnu module and then load PE-intel.

The GNU Compiler Suite

To load the GNU module:

module load PE-gnu

You can check which modules are loaded in your system by typing:

$ module list
Currently Loaded Modulefiles:
  1) gcc/5.3.0        2) openmpi/1.10.3   3) xalt/0.7.5       4) PE-gnu/1.0

To display information about the module, such as the size, the compiler, or the source from which the module was created, etc., use the following command:

$ module display PE-gnu
-------------------------------------------------------------------
/software/dev_tools/swtree/cs400/modulefiles/PE-gnu/1.0:

module-whatis  PE-gnu defines the environment needed to build
               applications using GNU compiler suites on this system.
conflict       PE-gnu PE-intel PE-pgi
setenv         PE_NAME GNU
setenv         PE_CC mpicc
setenv         PE_CXX mpic++
setenv         PE_FORTRAN mpif90
prepend-path   PATH /software/dev_tools/swtree/cs400_centos7.2_pe2016-08/PE/1.0/noarch/bin
module         load xalt
-------------------------------------------------------------------

You can switch between the two versions of PE-gnu v1.0 and PE-gnu v2.0:

$ module switch PE-gnu/1.0 PE-gnu/2.0
$ module list
Currently Loaded Modulefiles:
  1) gcc/5.3.0       2) openmpi/2.1.1   3) PE-gnu/2.0      4) xalt/0.7.5

The Intel Compiler Suite

If you are working with another module, first you need to unload it.

module load PE-intel

You can see what the module provides with the commands module list and module display.

$ module list
Currently Loaded Modulefiles:
  1) intel/16.0.1     2) openmpi/1.10.3   3) xalt/0.7.5       4) PE-intel/1.0
module display PE-intel
-------------------------------------------------------------------
/software/dev_tools/swtree/cs400/modulefiles/PE-intel/1.0:

module-whatis  PE-intel defines the environment needed to build
               applications using Intel compiler suites on this system.
conflict       PE-gnu PE-intel PE-pgi
setenv         PE_NAME INTEL
setenv         PE_CC mpicc
setenv         PE_CXX mpic++
setenv         PE_FORTRAN mpif90
prepend-path   PATH /software/dev_tools/swtree/cs400_centos7.2_pe2016-08/PE/1.0/noarch/bin
module         load xalt
-------------------------------------------------------------------

The Portland Group Compiler Suite

If you are working with another module, first you need to unload it.

module load PE-pgi

You can see what does the module provides with the commands module list and module display.

$ module list
Currently Loaded Modulefiles:
  1) pgi/15.7.0       2) openmpi/1.10.3   3) xalt/0.7.5       4) PE-pgi/1.0
$ module display PE-pgi
-------------------------------------------------------------------
/software/dev_tools/swtree/cs400/modulefiles/PE-pgi/1.0:

module-whatis  PE-pgi defines the environment needed to build
               applications using PGI compiler suites on this system.
conflict       PE-gnu PE-intel PE-pgi
setenv         PE_NAME PGI
setenv         PE_CC mpicc
setenv         PE_CXX mpic++
setenv         PE_FORTRAN mpif90
prepend-path   PATH /software/dev_tools/swtree/cs400_centos7.2_pe2016-08/PE/1.0/noarch/bin
module         load xalt
-------------------------------------------------------------------

The Numerical Algorithm Group Compiler Suite

If you are working with another module, first you need to unload it.

module load PE-nag

You can see what the module provides with the commands module list and module display.

$ module list
Currently Loaded Modulefiles:
  1) nag/6.0      2) mpich/3.2    3) xalt/0.7.5   4) PE-nag/1.0
$ module display PE-nag
-------------------------------------------------------------------
/software/dev_tools/swtree/cs400/modulefiles/PE-nag/1.0:

module-whatis  PE-nag defines the environment needed to build
               applications using NAG Fortran compiler on this system.
conflict       PE-gnu PE-intel PE-pgi
setenv         PE_NAME NAG
setenv         PE_CC mpicc
setenv         PE_CXX mpic++
setenv         PE_FORTRAN mpif90
prepend-path   PATH /software/dev_tools/swtree/cs400_centos7.2_pe2016-08/PE/1.0/noarch/bin
module         load xalt
-------------------------------------------------------------------

Last updated