Intel MKL in the Canopy/EDM ecosystem

The Intel Math Kernel Library (MKL) is a cross-platform framework that contains highly optimized math routines for common computations such as vector mathematics, linear algebra, statistics, and Fourier transformations. Other software packages can utilize this library to provide efficient and optimized computations. An excellent example of this feature is the numpy python library, which provides a framework for performing computations on n-dimensional arrays and is one of the primary components of the scientific python ecosystem.

The version of numpy provided by Canopy and EDM has been built from source to link against the Intel MKL. Thus MKL is a dependency of numpy. This ensures that the linear algebra computations performed through numpy are sped up by optimization with the Intel MKL. Additionally, this means that libraries that use numpy in the backend for linear algebra, such as Scipy and OpenCV will also receive the benefits of optimized calculations.

In addition to numpy, the following libraries provided by Canopy and EDM are built to link directly against the Intel MKL: cvxopt, numexpr, pymc, pysparse, scikit_learn, scipy, and scs.

While many python packages can boost performance in linear algebra computations by linking against the Intel MKL, other types of computations such as FFT do not receive this speedup. Intel provides a separate python package, mkl_fft, which provides an interface to efficient and optimized FFT routines. This package will be added to the Canopy/EDM ecosystem shortly.

Finally, Intel provides a number of other libraries focusing on high performance computing, which constitute their Intel Performance Libraries. Some of these libraries may be added to the Canopy/EDM ecosystem in the future to provide additional options for users who require additional options for threading and parallel computation.

Have more questions? Submit a request


Powered by Zendesk