Difference between revisions of "Intel Compilers and Libraries"

From UFRC
Jump to navigation Jump to search
Line 110: Line 110:
 
Do not compile on login nodes as those nodes are old opteron 4386 machines. The Intel compilers default to -xhost so they will build in a -m=pentium4 code path as the default and only code path if an alternative is not specified e.g. -ax.   
 
Do not compile on login nodes as those nodes are old opteron 4386 machines. The Intel compilers default to -xhost so they will build in a -m=pentium4 code path as the default and only code path if an alternative is not specified e.g. -ax.   
  
For HPG2, compile with
+
To take the advantages of the Advanced Vector Extensions (AVX) available on the newer Intel nodes on hipergator, please use the following compiler option for better performance:
 
  -msse3 -axcore-avx2,core-avx-i
 
  -msse3 -axcore-avx2,core-avx-i
 
or make sure to compile on a [[Development_and_Testing|dev node]]
 
or make sure to compile on a [[Development_and_Testing|dev node]]

Revision as of 17:51, 25 April 2017

Description

intel website  

Intel® Parallel Studio XE is a software development suite that helps boost application performance by taking advantage of the ever-increasing processor core count and vector register width available in Intel® Xeon® processors, Intel® Xeon Phi™ processors and coprocessors, and other compatible processors.

Note
The default intel version is 2016.0.109.

Required Modules

Serial

  • intel

System Variables

  • HPC_MKL_DIR - Intel MKL library installation directory
  • HPC_MKL_LIB - Intel MKL library file directory
  • HPC_MKL_INC - Intel MKL library include file directory

Compiling Serial Programs

Examples for compiling serial programs:

Source Langurage Compiler Command Example
C icc icc compiler_options example.c
C++ icpc icpc compiler_options -o example.exe example.cxx
F77 ifort ifort compiler_options -o example.exe example.f
F90 ifort ifort compiler_options -o example.exe example.f90

For detailed information on compiler options, please refer to the compiler man pages or use "-help" command option, for example

icc -help
man icc

Compiling OpenMP Programs

For multi-threaded shared memory parallel applications using OpenMP threading paradigm, add "-openmp" to the compiler options. For example:

icc -openmp -O2 -o example.exe example.c
icpc -openmp -O2 -o example.exe example.cpp
fort -openmp -O2 -o example.exe example.f90

Please see Sample_SLURM_Scripts for example job scripts to run threaded or multi-processor jobs.

Compiling MPI Programs

For distributed parallel MPI programs, the MPI library supported on hipergator is OpenMPI. To use Intel compiler with OpenMPI, please load the modules:

 module load intel openmpi

Examples for compiling MPI programs:

Source Langurage Compiler Command Example
C mpicc epic -O2 -o MPI_example.exe MPI_example.c
C++ mpicxx mpicxx -O2 -o MPI_example.exe MPI_example.cxx
F77 mpif77 mpif77 -O2 -o MPI_example.exe MPI_example.f
F90 mpif90 mpif90 -O2 -o MPI_example.exe MPI_example.f90

Please refer to the compiler man pages or use "-help" command option, for example

mpicc -help
man mpicc

Please see Sample_SLURM_Scripts for example job scripts to run MPI and hybrid MPI/Threaded jobs.


Additional Information

Compiling for the right hardware

Do not compile on login nodes as those nodes are old opteron 4386 machines. The Intel compilers default to -xhost so they will build in a -m=pentium4 code path as the default and only code path if an alternative is not specified e.g. -ax.

To take the advantages of the Advanced Vector Extensions (AVX) available on the newer Intel nodes on hipergator, please use the following compiler option for better performance:

-msse3 -axcore-avx2,core-avx-i

or make sure to compile on a dev node