Make available to Julia the sparse functionality in MKL



MKLSparse.jl is a Julia package to seamlessly use the sparse functionality in MKL to speed up operations on sparse arrays in Julia. In order to use MKLSparse.jl you need to have MKL installed and the environment variables MKLROOT correctly set, see the MKL getting started guide for a guide. You do not need to have built Julia with MKL as the used BLAS library to use the package.

Matrix multiplication

Loading MKLSparse.jl will make sparse-dense matrix operations be computed using MKL.

Solving linear systems

Solving linear systems with triangular sparse matrices is supported. These matrices should be wrapped in their corresponding type, for example LowerTriangular for lower triangular matrices.

For solving general sparse linear systems using MKL we refer to Pardiso.jl.


  • The integer type that should be used in order for MKL to be called is the same as used by the Julia BLAS library, see Base.USE_BLAS64.

Possible TODO's

  • Wrap BLAS1 (SparseVector)
  • Wrap DSS
  • Wrap Incomplete LU preconditioners

First Commit


Last Touched

about 21 hours ago


31 commits