Difference between revisions of "Intel Compiler 2016"

From HPC users
Jump to navigationJump to search
(Created page with "The Intel compiler is available as a module and is currently installed in version 2016.3.210. To find out which versions are installed you can use the command module av icc ...")
 
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The Intel compiler is available as a module and is currently installed in version 2016.3.210. To find out which versions are installed you can use the command
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 ---------------------
   intel/2016.3.210
   '''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 intel/2016.3.210
   module load icc/2019.5.281
 
The commands for the available languages are
The commands for the available languages are
<center>
 
{| 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 13: Line 30:
!Description
!Description
|-
|-
| ''gcc''
| ''icc''
| C compiler
| C compiler
|-
|-
| ''g++''
| ''icpc''
| C++ compiler
| C++ compiler
|-
|-
| ''gfortran''
| ''ifort''
| Fortran compiler
| Fortran compiler
|-
|-
|}
|}
</center>


== 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