Intel Compilers

The Intel Compilers are a set of compilers popular in HPC which are optimized for Intel processors. There are two families of the Intel Compilers, the classic compilers and the OneAPI compilers. The module name is not the same in all software stacks. The module names can be found in the table below.

VersionGWDG Modules (gwdg-lmod)NHR Modules (nhr-lmod) (deprecated)SCC Modules (scc-lmod) (deprecated)
OneAPIintel-oneapi-compilersintel-oneapi-compilersintel-oneapi-compilers
classicintel-oneapi-compilers-classicintel-oneapi-compilersintel
Info

Sometimes the internal LLVM components of the Intel OneAPI compilers like llvm-ar or llvm-profgen are required e.g. for Interprocedural Optimization (IPO). These can be loaded via the additional following command in the GWDG Modules (gwdg-lmod):

module load intel-oneapi-compilers-llvm

To load a specific version, run

module load NAME/VERSION

where NAME comes from the table above. To load the default version, run

module load NAME

Modules

The following versions are available via the unified GWDG Modules.

List of Modules

Node TypeModule NamesRequirements (Load First)
Grete (GPU)intel-oneapi-compilers/2023.2.4
intel-oneapi-compilers/2025.0.0
Grete (GPU)intel-oneapi-compilers-classic/2021.10.0
Emmy (CPU)intel-oneapi-compilers/2023.2.4
intel-oneapi-compilers/2025.0.0
Emmy (CPU)intel-oneapi-compilers-classic/2021.10.0

Languages

The supported languages and the names of their compiler programs are in the table below.

LanguageOneAPI ProgramClassic Program
Cicxicc
C++icpxicpc
Fortranifxifort

OpenMP

The Intel Compilers support the OpenMP (Open Multi-Processing) extension for C, C++, and Fortran. Enable it by adding the -qopenmp option to the compiler. Additionally, the -qopenmp-simd option enables using the OpenMP simd directive.

Targeting CPU Architecture

By default, the Intel Compilers will compile code targeting the generic version of the CPU the compilers are run on. On an x86-64 node, this means being compatible with the very earliest 64-bit Intel processors from 2003 and thus no AVX/AVX2/AVX-512 without SSE fallback. The compilers use the following options to control the target architecture:

Compiler OptionDefault ValueMeaning
-march=ARCHgenericGenerate instructions targeting ARCH
-mtune=ARCHgenericTune performance for ARCH but don’t generate instructions not supported by -march=ARCH

The ARCH values for the different CPU architectures (Spack naming) we provide are

Architecture/Target (Spack naming)ARCH value for Intel Compilers
Generic x86-64 Intel CPUoff
skylake_avx512skylake-avx512 (use core-avx2 for classic before 19)
cascadelakecascadelake (use skylake-avx512 for classic 18 and core-avx2 for classic before 18)
sapphirerapidssapphirerapids (use icelake-client for classic 18) and core-avx2 for classic before 18)
zen2Not recommended, but if you must, use core-avx2 and see warning below
zen3Not recommended, but if you must, use core-avx2 and see warning below
Warning

While the Intel compilers can compile code that will run on AMD CPUs, and even sometimes produce binaries that run faster than ones produced by other compilers, they could also perform poorly. Your mileage may vary. We recommend that you also try a different set of compilers for nodes with AMD CPUs such as GCC or AOCC and compare which produces the best results for a given source code.