Difference between revisions of "Intel Compilers and Libraries"
Moskalenko (talk | contribs) |
|||
Line 5: | Line 5: | ||
<!--CONFIGURATION: OPTIONAL (|1}} means it's ON)--> | <!--CONFIGURATION: OPTIONAL (|1}} means it's ON)--> | ||
|{{#vardefine:conf|}} <!--CONFIGURATION--> | |{{#vardefine:conf|}} <!--CONFIGURATION--> | ||
− | |{{#vardefine:exe|}} <!--ADDITIONAL INFO--> | + | |{{#vardefine:exe|1}} <!--ADDITIONAL INFO--> |
|{{#vardefine:pbs|}} <!--PBS SCRIPTS--> | |{{#vardefine:pbs|}} <!--PBS SCRIPTS--> | ||
|{{#vardefine:policy|}} <!--POLICY--> | |{{#vardefine:policy|}} <!--POLICY--> | ||
Line 107: | Line 107: | ||
<!--Run--> | <!--Run--> | ||
{{#if: {{#var: exe}}|==Additional Information== | {{#if: {{#var: exe}}|==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. | ||
− | + | For HPG2, compile with | |
− | + | -msse3 -axcore-avx2,core-avx-i | |
+ | or make sure to compile on a [[Development_and_Testing|dev node]] | ||
|}} | |}} | ||
<!--PBS scripts--> | <!--PBS scripts--> |
Revision as of 18:43, 23 January 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.
For HPG2, compile with
-msse3 -axcore-avx2,core-avx-i
or make sure to compile on a dev node