Math Kernel Library
|Initial release||May 9, 2003|
|Stable release||11.2 Update 2 / February 5, 2015|
|Written in||C/C++, Fortran|
|Operating system||Microsoft Windows, Linux, OS X|
|Type||Library or framework|
Intel Math Kernel Library (Intel MKL) is a library of optimized math routines for science, engineering, and financial applications. Core math functions include BLAS, LAPACK, ScaLAPACK, sparse solvers, fast Fourier transforms, and vector math. The routines in MKL are hand-optimized specifically for Intel processors.
Intel launched the Math Kernel Library on May 9, 2003 and called it blas.lib. The project's development teams are located in Russia and the United States. Both standalone and bundled versions of the library are available. MKL is bundled with Intel Parallel Studio XE, Intel Cluster Studio XE, Intel C++, Fortran Studio XE products as well as canopy.
As of May 2014, a commercial license is required for each development machine in concurrent use. Certain binary components of the library are redistributable without royalty as part of the developed application.
Intel MKL has the following functional categories:
- Linear algebra: BLAS routines are vector-vector (Level 1), matrix-vector(Level 2) and matrix matrix(Level 3) operations for real and complex single and double precision data. LAPACK consists of tuned LU, Cholesky and QR factorizations, eigenvalue and least squares solvers.
- Since MKL uses standard interfaces for BLAS and LAPACK, the application which uses other implementations can get better performance on Intel and compatible processors by re-linking with MKL libraries.
- MKL includes a variety of Fast Fourier Transforms (FFTs) from 1D to multidimensional, complex to complex, real to complex, and real to real transforms of arbitrary lengths. Applications written with the open source FFTW can be easily ported to MKL by linking with interface wrapper libraries provided as part of MKL for easy migration.
- Cluster versions of LAPACK and FFTs are also available as part of MKL to take advantage of MPI parallelism in addition to single node parallelism from multithreading.
- Vector math functions include computationally intensive core mathematical operations for single and double precision real and complex data types. These are similar to libm functions from compiler libraries but operate on vectors rather than scalars to provide better performance. There are various controls for setting accuracy, error mode and denormalized number handling to customize the behavior of the routines.
- Statistics functions include random number generators and probability distributions. optimized for multicore processors.Also included are compute-intensive in and out-of-core routines to compute basic statistics, estimation of dependencies etc.
- Data fitting functions include splines (linear, quadratic, cubic, look-up, stepwise constant) for 1-dimensional interpolation that can be used in data analytics, geometric modeling and surface approximation applications.
Reproducible or consistent results
MKL recently introduced a conditional numerical reproducibility (CNR) capability to provide consistent floating point results across different target processors without drastically reducing the performance of the application.
Intel Xeon Phi (MIC architecture) usage
MKL can automatically make use of the Intel Xeon Phi coprocessors, if they are available in the system, by offloading the compute intensive linear algebra functions. Many of the functions are also optimized to take advantage of the wider vector units (512 bit) available on the MIC architecture.
Intel has published benchmarks to substantiate claims of performance leadership over open source and AMD libraries on Intel and non-Intel processors. Nevertheless, the 64-bit version of the Math Kernel Library has been criticized for being suboptimal on non-Intel processors. See criticism of the Intel C++ compiler for a related discussion.
- AMD Core Math Library (ACML)
- Intel Integrated Performance Primitives (IPP)
- Intel Developer Zone (Intel DZ; support and discussion)
- List of numerical libraries
- Automatically Tuned Linear Algebra Software (ATLAS)
- GotoBLAS and OpenBLAS
- "Intel MKL 11.2 Release Notes".
- "Intel MKL 11.2 Bug Fixes".
- "Intel launches library tool for developers. (Intel Math Kernel Library 6.0 )(Brief Article)". Telecomworldwire. May 9, 2003. Retrieved November 29, 2009.
- Intel Corporation (2010). "Intel Math Kernel Library (Intel MKL)". Retrieved December 1, 2010.