Chemistry »
Mathematics «
    MKL «
Physics »
Visualization »

Intel Math Kernel Library

The Math Kernel Library (MKL) from Intel offers highly optimized, thread-safe, math routines for science and engineering. See the product info from Intel for more details. [here]. The library contains:

  • Linear Algebra - BLAS and LAPACK
  • Linear Algebra - Sparse Solvers
  • Fast Fourier Transforms
  • Vector Math Library
  • Vector Statistical Library (Random Number Generators)

A manual for Linux platforms is available. [here]

The MKL is divided into high-level libraries (ScaLAPACK, LAPACK, sparse solver) and processor specific kernels (BLAS, FFT, etc.). The high level libraries are optimized without regard to the processor and can be used effectively on Intel processors in general, whereas the kernels are optimized for specific architectures. The math routines are linked into your application. If you link an application on a cluster you should not use threading and the link command may look like:

ifort -o myprogram.x myprogram.o -L$MKL_ROOT -lmkl -lmkl_lapack
If you link an application on an shared-memory machine you may want to use threading and the link command may look like:
ifort -o myprogram.x -L$MKL_ROOT myprogram.o -lmkl_lapack -lmkl -lguide -lpthread 


  • On Mozart we recommend use of SGIs math library called SCSL rather than MKL.
  • If the variable OMP_NUM_THREADS is not set, MKL routines will run on the number of threads equal to 1 (except for the sparse solver where the default number of threads is the number of processors in the system). It is recommended that you always set OMP_NUM_THREADS to the number of processors you wish to use in your application.

Page last modified: 2007-09-19 11:54
For more information contact us at