Ouessant : IBM compiler

Using the IBM compilers requires using the Module command:

$ module load xlc xlf

This table shows the possible languages used and their corresponding compilers:

Language Compilers
Fortran Fortran 77, fixed format
xlf, xlf_r or f77

Fortran 90, free format
xlf90, xlf90_r or f90

Fortran 95, free format
xlf95, xlf95_r or f95

Fortran 2003, free format
xlf2003_r or f2003

Fortran 2008, free format
xlf2008, xlf2008_r or f2008
C xlc or xlc_r
C++ xlC, xlC_r, xlc++ or xlc++_r

MPI compiler

The Spectrum MPI library is the preferred MPI library to use on Ouessant and is available with the Module command:

$ module load xlc xlf smpi
Language Compilers
Fortran Fortran 77, fixed format
mpif77

Fortran 90, free format
mpif90

C mpicc
C++ mpiCC, mpic++

Comments

Compiling multithreaded applications and OpenMP

Applications which are multithreaded, or using OpenMP directives, need to be compiled with the command suffixes in _r. In fact, it is necessary to use the reentrant versions of the compiler and the standard libraries.

Compilation options

Options Effects
-qsmp=omp OpenMP support
-qoffload -qtgtarch=sm_60 OpenMP Target support
-g Adds information for debugging
-C Stops the execution when an array is referenced outside of its bounds
-O3 [-qhot] Advised optimisation option
-O0 -qnohot -qnosmp -qstrict No optimisation
-O2 Limited optimisation
-O3 -qstrict Optimisation without changing the semantics of the code
-O3 Optimisation with possible change to the semantics of the code
-O4 More aggressive optimisation
-O5 Even more aggressive optimisation