Math Kernel Library

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Math Kernel Library
Developer(s) Intel
Initial release May 9, 2003; 11 years ago (2003-05-09)
Stable release 11.1 Update 3 / April 28, 2014; 3 months ago (2014-04-28)[1]
Written in C/C++
Operating system Microsoft Windows, Linux, OS X
Type Library or framework
License Proprietary
Website software.intel.com/en-us/intel-mkl

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 by exploiting Intel's multicore and many-core processors.

The library supports Intel and compatible processors and is available for Windows, Linux and OS X operating systems. MKL functions are optimized with each new processor releases from Intel.[citation needed]

History[edit]

Intel launched the Math Kernel Library on May 9, 2003 and called it blas.lib.[2] 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. The current available version of the library is 11.1.[3]

License[edit]

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.[3]

Details[edit]

Functional Categories[edit]

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[edit]

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[edit]

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.

Criticism[edit]

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.

See also[edit]

References[edit]

  1. ^ "Intel MKL 11.1 Release Notes". 
  2. ^ "Intel launches library tool for developers. (Intel Math Kernel Library 6.0 )(Brief Article)". Telecomworldwire. May 9, 2003. Retrieved November 29, 2009. 
  3. ^ a b Intel Corporation (2010). "Intel Math Kernel Library (Intel MKL)". Retrieved December 1, 2010. 

External links[edit]