MKL
The Intel Math Kernel Library (MKL) contains highly optimized and extensively threaded routines for engineering and scientific applications.
It includes linear algebra routines (BLAS, LAPACK, ScaLAPACK, and sparse solvers), FFTs, a vector math library, vector random number generators, and LINPACK benchmark routines.
Choosing which libraries to link to
For help in determining which libraries to link, to see the MKL Library Link Advisor provided by Intel.
Threaded MKL routines
Note that threaded MKL routines are based on OpenMP. Treat these routines as OpenMP parallel regions. Be sure that your thread count does not exceed the number of cores allocated to your job.
Usage on Bridges-2
The MKL library is included with the Intel compilers. Loading the intel module will give access to MKL also. You can use
module spider intel
to see what versions are available, and
module load intel
to get the version that you want.
To use MKL with a different set of compilers, load both the compiler and MKL modules. You can type
module spider compiler-type module spider mkl
to see what versions are available, and then
module load compiler-type module load mkl
Usage on Bridges
The MKL libraries are available as part of the Intel Parallel Studio by default. To see which versions are available, type
module avail intel
For more specific information on any installed version, type
module help intel/nnnnn
where nnnnn is the specific intel module you are interested in.
To use a different version of the Parallel Studio than the default, unload the default version and load the one you want.
module unload intel module load intel/nnnnn
Create a job script which
- Loads a non-default version of the Intel Parallel Studio, if you like
- Includes a compilation command which calls the MKL libraries you need. If you need help to determine which libraries to link to, see the MKL Library Link Advisor.
To use the Intel compilers with MKL, the compilation command should be similiar to:
ifort source.f -o executable -mkl=[parallel | sequential]
To use the GNU compilers with MKL, you must explicitly list each library.
g++ source.cc -o executable -L${MKLROOT} -llibrary1 -llibrary2
Submit the script with the sbatch command. See the Running Jobs section of the Bridges User Guide for more information on partitions, job scripts and the sbatch command.