# MKL

## General Description

Intel® Math Kernel Library (Intel® MKL) offers highly optimized, extensively threaded math routines for scientific, engineering, and financial applications that require maximum performance.

- Linear Algebra - BLAS and LAPACK
- Deploy BLAS and LAPACK routines that are highly optimized for Intel processors, and that provide significant performance improvements over alternative implementations. Intel MKL 9.1 is compliant with the new 3.1 release of LAPACK.

- Linear Algebra - ScaLAPACK
- Available in the Cluster Edition only. The Intel MKL implementation of ScaLAPACK can provide significant performance improvements over the standard NETLIB implementation.

- Linear Algebra- Sparse Solvers
- Solve large, sparse linear systems of equations with the PARDISO Direct Sparse Solver – an easy-to-use, thread-safe, high-performance, and memory-efficient software library licensed from the University of Basel. Intel MKL also includes Conjugate Gradient and FGMRES iterative sparse solvers.

- Fast Fourier Transforms (FFT)
- Employ multi-dimensional FFT routines (1D up to 7D) with mixed radix support and a modern, easy-to-use C/Fortran interface. Intel MKL also provides a set of C routines ("wrappers") that mimic the FFTW 2.x and 3.0 interfaces making it easy for current FFTW users to compare performance with Intel MKL.

- Fast Fourier Transforms for Distributed Memory Multiprocessors (Clusters)
- Available in the Cluster Edition only. Improve your FFT performance even more by distributing the work over a large number of processors.

- Vector Math Library
- Increase application speeds with vectorized implementations of computationally intensive core mathematical functions (power, trigonometric, exponential, hyperbolic, logarithmic, and so on).

- Vector Random Number Generators
- Speed up your simulations using our vector random number generators, which can provide substantial performance improvements over scalar random number generator alternatives.

- LINPACK Benchmark
- Intel provides free LINPACK benchmark packages to help you obtain the highest possible benchmark results for your Intel® architecture-based systems.

## Basic Usage

The MKL libraries come bundled with the Intel Compiler as of Release 14.0, and are located in the AFS directory **/afs/crc.nd.edu/x86_64_linux/intel/14.0/mkl/lib/intel64**.

The only compiler supported is the Intel ifort/icc suite.

Intel provides a Math Kernel Link Advisor Page that can provide the proper link line to use when building C/C++/Fortran code with MKL.

Here's a **DYNAMICALLY** access example of using the library from a Fortran program:

ifort L${MKLROOT}/lib/intel64 -lmkl_intel_ilp64 -lmkl_core -lmkl_sequential -lpthread -lm example_code.f90

To **STATICALLY** access the library from a C program:

icc -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_ilp64.a ${MKLROOT}/lib/intel64/libmkl_core.a ${MKLROOT}/lib/intel64/libmkl_sequential.a -Wl,--end-group -lpthread -lm example_code.c

The advantages to dynamic libraries are smaller executable size, and the ability to update a library without recompilation of code.

## Further Information

See the official site for more detail: MKL