The following compilers are available on the HEC:
- Intel C/C++;
- Intel Fortran 77, 90 & 95;
- PGI (Portland) C/C++; and
- PGI (Portland) Fortran 77, 90 and 95.
To access the Intel Compiler suite, load the intel module:
module add intel
The Intel Compilers (icc for C, icpc for C++ and ifort for Fortran) can now be invoked. A detailed list of the flags for these compilers can be found in the relevant man pages.
The recommended starting point for generating optimised code is to use the flags:
-O3 -xCORE-AVX-I -axCORE-AVX2,CORE-AVX512
This will generate code optimised for all the CPU architectures currently available on the HEC.
To improve numerical precision add the flag:
Intel support for BLAS, LAPACK, etc - the Math Kernel Library
The current version of the Intel compiler suite features a built-in version of Intel's Math Kernel Library, offering several popular linear algebra (BLAS and LAPACK), FFT and PDE functions. The recommended compiler flag for linking with the MKL is:
To access the Portland Group compiler suite, load the pgi module:
module add pgi
The Portland Compilers (pgcc, pgCC, pgf77, pgf90 and pgf95) can now be invoked. The recommended starting point for optimising code is to add the flag:
Recent versions of the PGI suite are installed with optimised versions of BLAS and LAPACK based on OpenBLAS. These can be linked via the commands:
-lblas and -llapack
Version 14 and earlier of the PGI suite offered BLAS, etc as part of ACML — the AMD Core Math Library — which can be linked using the flags: