Intel Toolchains
A toolchain consists of one or more compilers, usually put together with some libraries for specific functionality, e.g., for using an MPI stack for distributed computing, or to provide optimized routines for commonly used maths operations, e.g., the well-known BLAS/LAPACK APIs for linear algebra routines.
Hence loading a toolchain modulefile will load other modulefiles (and make its own settings) to give you a compiler, and a set of libraries compiled with that compiler, that you can then use to build your own applications – for example compiling your own source code. Many applications require the various packages provided by the toolchain, so using a toolchain gives a consistent method of building applications.
The following Intel-compiler toolchains are available. The version number (e.g., 2020.02
) refers to the version of the Intel Compiler. You should load one of the following modulefiles:
# Intel C, C++ and Fortran Compilers + Intel Math Kernel Libraries (MKL) + OpenMPI (parallel library) module load iomkl/2020.02 # Compilers+MKL at 2020.2.254, openmpi 4.0.4 # Intel C, C++ and Fortran Compilers + OpenMPI (parallel library) module load iompi/2020.02 # Compilers at 2020.2.254, openmpi 4.0.4 # Intel C, C++ and Fortran Compilers + Intel Math Kernel Libraries (MKL) module load iimkl/2020.02 # Compilers+MKL at 2020.2.254 + access to some gcc 9.3.0 core libs # Intel C, C++, Fortran Compilers (not a "toolchain", just the compilers) module load iccifort/2020.2.254 # Compilers at 2020.2.254 + access to some gcc 9.3.0 core libs
You may wish to use the iompi
(no MKL) from the list above if using some other library for BLAS or FFTW routines.
See elsewhere in the documentation for details of the Intel Compiler, the MKL and OpenMPI. For now, when compiling code with the Intel compiler, we recommend the following flags to ensure your app runs on the CSF4 Cascade Lake CPUs and also any nodes from the CSF3 that we may move in to CSF4 (there are no plans to do this at the moment.)
# Flags to add to icc / icpc / ifort (e.g., vi CFLAGS etc in your Makefile) -O3 -xAVX -axCORE-AVX512,CORE-AVX2,AVX