Math Kernel Library
Developer(s) | Intel |
---|---|
Initial release | May 9, 2003 |
Stable release |
2017
/ September 6, 2016[1] |
Written in | C/C++, Fortran |
Operating system | Microsoft Windows, Linux, OS X |
Type | Library and framework |
License | Proprietary, freeware[2] |
Website |
software |
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.[3] The routines in MKL are hand-optimized specifically for Intel processors.[4][5]
The library supports Intel and compatible processors and is available for Windows, Linux and OS X operating systems.[6][3][4][3]
History
Intel launched the Math Kernel Library on May 9, 2003 and called it blas.lib.[7] The project's development teams are located in Russia and the United States. MKL is bundled with Intel Parallel Studio XE, Intel Cluster Studio XE, Intel C++, Fortran Studio XE products as well as canopy. Standalone versions have not been sold for years to new customers but are available through the Community Licensing program for free.[8][2]
License
A license is required for each development machine in concurrent use, these can either be paid licenses or in some cases obtained freely.[2] Certain binary components of the library are redistributable without royalty as part of the developed application.[9]
Details
Functional categories
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.
See also
- List of numerical libraries
- Automatically Tuned Linear Algebra Software (ATLAS)
- GotoBLAS and OpenBLAS
References
- ↑ "Intel Math Kernel Library 2017 Release Notes".
- 1 2 3 "No Cost Options for Intel Parallel Studio XE, Support yourself, Royalty-Free".
- 1 2 3 "Intel Math Kernel Library".
- 1 2 "Intel Math Kernel Library (MKL)".
- ↑ "Webinar 3 – Practical usage of Intel Math Kernel Library: performance tuning tips and usage with coprocessors".
- ↑ "MKL - Intel Math Kernel Library".
- ↑ "Intel launches library tool for developers. (Intel Math Kernel Library 6.0) (Brief Article)". Telecomworldwire. May 9, 2003. Retrieved November 29, 2009.
- ↑ https://software.intel.com/en-us/forums/topic/532440
- ↑ Intel Corporation (2010). "Intel Math Kernel Library (Intel MKL)". Retrieved December 1, 2010.