Difference between revisions of "Intel Compilers and Libraries"
Moskalenko (talk | contribs) |
|||
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. | ||
− | + | 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® 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