Difference between revisions of "Intel Compiler 2016"
From HPC users
Jump to navigationJump to search
Schwietzer (talk | contribs) |
|||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
The Intel compiler is available as a module and is | 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 | module av icc | ||
which currently shows | which currently shows | ||
-------------------- /cm/shared/uniol/modulefiles/COMPILER --------------------- | -------------------- /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. | To load the module of your choice type e.g. | ||
module load | module load icc/2019.5.281 | ||
The commands for the available languages are | The commands for the available languages are | ||
{| style="background-color:#eeeeff;" cellpadding="10" border="1" cellspacing="0" | {| style="background-color:#eeeeff;" cellpadding="10" border="1" cellspacing="0" | ||
|- style="background-color:#ddddff;" | |- style="background-color:#ddddff;" | ||
Line 23: | Line 40: | ||
|- | |- | ||
|} | |} | ||
-- | == Compiler Flags == | ||
Here are some compiler flags which may increase the performance of your code | |||
{| style="background-color:#eeeeff;" cellpadding="10" border="1" cellspacing="0" | |||
|- style="background-color:#ddddff;" | |||
! 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 == | == 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 == | == 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 |
Latest revision as of 13:44, 4 August 2020
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