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
-------------------------------------------------------------------