Intel Compiler 2016
From HPC users
Revision as of 13:44, 4 August 2020 by Schwietzer (talk | contribs)
The Intel compiler is available as a module and is available in different versions. To find out which versions are installed you can use the command
module av icc
which currently shows
-------------------- /cm/shared/uniol/modulefiles/COMPILER --------------------- icc/2016.3.210
This output depends on the currently loaded environment. If you change to the newer environment, the output will differ:
module load hpc-env/8.3 # change the environment module av icc
------------------ /cm/shared/uniol/modules/8.3/compiler ------------------- icc/2019.5.281 --------------------- /cm/shared/uniol/modules/8.3/mpi --------------------- impi/2019.6.166-iccifort-2019b ------------------ /cm/shared/uniol/modules/8.3/toolchain ------------------ iccifort/2019b
To load the module of your choice type e.g.
module load icc/2019.5.281
The commands for the available languages are
Name | Description |
---|---|
icc | C compiler |
icpc | C++ compiler |
ifort | Fortran compiler |
Compiler Flags
Here are some compiler flags which may increase the performance of your code
Flag | Description |
---|---|
-O2, -O3, -fast | Enable optimization to maximise speed. -O3 and -fast is more agressive. |
-xHost | Enables the usage SIMD extensions of host which allows vectorizing of floating point operations. |
-fp-model MODEL | Defines the consistency level of floating point operations. Allowed MODEL are: fast, precise, strict, except |
-[no-]prec-div, -[no-]prec-sqrt, -[no-]fast-transcendentals | Enables faster computations of divisions, square roots and transcendental functions with a reduced accruacy, respectively. |
Advantages
- usually best performance for C and Fortran code on Intel processors
- high performance with OpenMP
- high optimization done by compiler
- Fortran extension coarray implemented
Disadvantages
- performance of C++ code can be moderate
- relative slow compilation
- not free, only for Intel architecture available
- newest standards may missing
- sometimes too enthusiastic/aggressive in optimization