Questions tagged [intel-mkl]

Intel MKL (Math Kernel Library) is a high performance math library specifically optimised for Intel processors. Its core functions include BLAS and LAPACK linear algebra routines, fast Fourier transforms and vector math functions amongst others.

Intel MKL (Math Kernel Library) is a high performance math library specifically optimised for Intel processors and explicitly parallelised with a version specifically available for High End Supercomputer clusters. Its core functions include BLAS and LAPACK linear algebra routines, fast Fourier transforms and vector math functions amongst others.

Intel MKL only supports Intel and compatible processors and is available for Windows, Linux and OS X as part of Intel® Parallel Studio and Intel® System Studio. There are free versions available for Students and Academic researchers at qualifying institutions.

The Intel® Math Kernel Library includes the following groups of routines:

  • Basic Linear Algebra Subprograms (BLAS):
    • vector operations
    • matrix-vector operations
    • matrix-matrix operations
  • Sparse BLAS Level 1, 2, and 3 (basic operations on sparse vectors and matrices)
  • LAPACK routines for solving systems of linear equations
  • LAPACK routines for solving least squares problems, eigenvalue and singular value problems, and Sylvester's equations
  • Auxiliary, utility, and test LAPACK routines
  • ScaLAPACK computational, driver and auxiliary routines (only in Intel MKL for Linux* and Windows* operating systems)
  • PBLAS routines for distributed vector, matrix-vector, and matrix-matrix operation
  • Direct and Iterative Sparse Solver routines, including a solver based on the PARDISO* sparse solver and the Intel MKL Parallel Direct Sparse Solver for Clusters
  • Direct Sparse Solver (DSS)
  • Extended Eigensolver routines for solving symmetric standard or generalized symmetric definite eigenvalue problems using the Feast algorithm
  • Vector Mathematical Library (VML) functions for computing core mathematical functions on vector arguments (with Fortran and C interfaces)
  • Vector Statistical Library (VSL) functions for generating vectors of pseudorandom numbers with different types of statistical distributions and for performing convolution and correlation computations
  • General Fast Fourier Transform (FFT) Functions, providing fast computation of Discrete Fourier Transform via the FFT algorithms and having Fortran and C interfaces
  • Cluster FFT functions (only in Intel MKL for Linux* and Windows* operating systems)
  • Tools for solving partial differential equations - trigonometric transform routines and Poisson solver
  • Optimization Solver routines for solving nonlinear least squares problems through the Trust-Region (TR) algorithms and computing Jacobi matrix by central differences
  • Basic Linear Algebra Communication Subprograms (BLACS) that are used to support a linear algebra oriented message passing interface
  • Data Fitting functions for spline-based approximation of functions, derivatives and integrals of functions, and search
798 questions
4
votes
1 answer

Intel MKL matrix product performance with double, float and int data types

I'm experimenting with the Intel MKL library for performing Matrix multiplication using the Boost::uBLAS interface they provide (including mkl_boost_ublas_matrix_prod.hpp). My data are just integers so I tried changing my matrix template type to int…
Brandon
  • 668
  • 8
  • 22
3
votes
1 answer

Calling a threaded function of the MKL from python: openmp library not found?

I am using the ctypes module to load the Intel MKL into python and then I'd like to call a routine that requires openmp parallelization (pardiso, in my case) I found this useful link on the Intel sites that details the process, and I can run their…
cadolphs
  • 9,014
  • 1
  • 24
  • 41
3
votes
1 answer

gfortran links with MKL leads to 'Intel MKL ERROR: Parameter 10 was incorrect on entry to DGEMM'

I have the following Fortran code (modified on top of many answers from stack overflow..) Program blas integer, parameter :: dp = selected_real_kind(15, 307) Real( dp ), Dimension( :, : ), Allocatable :: a Real( dp ), Dimension(…
AlphaF20
  • 583
  • 6
  • 14
3
votes
1 answer

How can I link numpy to use MKL as backend?

I have a numpy install and it shows no BLAS backend available: (pyrepoux) bash-4.2$ python Python 3.7.3 | packaged by conda-forge | (default, Dec 6 2019, 08:54:18) [GCC 7.3.0] :: Anaconda, Inc. on linux Type "help", "copyright", "credits" or…
SkyWalker
  • 13,729
  • 18
  • 91
  • 187
3
votes
1 answer

memory alignment with mkl_malloc

This question might just show that I haven't understand something important in C: The Intel Math Kernel library provides a way to set the memory alignment when allocating memory. On the other hand I pass arrays to mkl lapack routines just by…
Lucas
  • 918
  • 1
  • 9
  • 18
3
votes
1 answer

PyCall import("numpy") produces MKL FATAL ERROR

Background: Using mac 10.15, I just installed python, conda and julia. I then used conda to install numpy and installed julia PyCall pointing ENV["PYTHON"] to the conda executable (out put of sys.executable in python and the desired conda…
Shane P Kelly
  • 221
  • 1
  • 8
3
votes
0 answers

Reproducible machine learning results on different CPUs with Intel MKL

I am working on a ML project with conda, python==3.6.8 and mkl==2019.1. I have set the seed and running the code multiple times on an Intel Pentium G4560, I get the exact same results. However, running the same code under an identical environment on…
3
votes
2 answers

Why is MKL in parallel not faster than serial in R 3.6?

I am trying to use Intel's MKL with R and adjust the number of threads using the MKL_NUM_THREADS variable. It loads correctly, and I can see it using 3200% CPU in htop. However, it isn't actually faster than using only one thread. I've been…
Neal Fultz
  • 9,282
  • 1
  • 39
  • 60
3
votes
2 answers

Full matrix or triagonal part necessary in LAPACKE function for diagonalization?

I would like to compute the eigenvalues of a symmetric matrix and wanted to use the LAPACKE_dsyev function from the Intel MKL Library in C++ for that. But I am a bit puzzled regarding the form in which the matrix needs to be passed. From the…
cschoenle
  • 117
  • 7
3
votes
1 answer

Why is matlab's mldivide so much better than dgels?

Solve Ax = b. Real double. A is overdetermined Mx2 with M >> 2. b is Mx1. I've run a ton of data against mldivide, and the results are excellent. I wrote a mex routine with MKL LAPACKE_dgels and it's nowhere near as good. The results have a…
Tyson Hilmer
  • 741
  • 7
  • 25
3
votes
1 answer

Math.NET Numerics Poor Performance and Low CPU Usage

I want to be able to solve large sparse systems of linear equations in C# (dim = 1,000,000). For this I'm using Math.NET Numerics with the MKL provider. I created the following test program to check the performance of Math.NET Numerics, however,…
Carlos
  • 586
  • 1
  • 9
  • 19
3
votes
0 answers

How can I get the correct eigenvectors from LAPACK ssyev?

I am trying to use LAPACK's ssyev (http://www.netlib.org/lapack/explore-html/d3/d88/group__real_s_yeigen_ga63d8d12aef8f2711d711d9e6bd833e46.html) to calculate eigenvalues and eigenvectors. As a test, I'm using the simple matrix from…
Niek de Klein
  • 8,524
  • 20
  • 72
  • 143
3
votes
1 answer

Intel MKL Sparse QR Solve in C++ returns not initialized error

When attempting to use mkl_sparse_s_qr_solve, I receive a result of all 0's and the error status of SPARSE_STATUS_NOT_INITIALIZED which means that the handle/matrix is empty. I have tried reading through the documentation thoroughly and printing…
minierolls
  • 69
  • 6
3
votes
3 answers

Anaconda: cannot find packages when calling Python interpreter from outside the shell

I have two Anaconda environments: The base environment An R environment (containing R only) The base environment is the default environment and does not appear in the Anaconda subdirectory envs. Base is activated by default and in particular…
Samufi
  • 2,465
  • 3
  • 19
  • 43
3
votes
1 answer

Multithreaded MKL + OpenMP compiled with GCC

My understanding, from reading the Intel MKL documentation and posts such as this-- Calling multithreaded MKL in from openmp parallel region -- is that building OpenMP parallelization into your own code AND MKL internal OpenMP for MKL functions…
v.chaplin
  • 617
  • 6
  • 8