Intel® Math Kernel Library

Create 8 VSLStreamStatePtr affected MKL "dtrsm"' s performance, include test code,issue still open

At first I want to generate random in multythreads in the following code:

#define nstreams 8
VSLStreamStatePtr stream[nstreams];

int k;
for ( k=0; k< nstreams; k++ )
vslNewStream( &stream[k], VSL_BRNG_MT2203+k, seed );

But I found, If I generate 8 VSLStreamStatePtr , other MKL functions performance will be affected(5 times slower then normal), these affected funtions are:

dtrsm("Right", "Upper", "No transpose", "Nunit", ...);




Intel® Math Kernel Library (Intel® MKL) and pkg-config tool

    The pkg-config tool[1] is a widely used tool that many users apply to their makefiles. Intel® Math Kernel Library (Intel® MKL) provides pkg-config metadata files for this tool starting with the Intel MKL 2018 Update 1 release.

    The Intel MKL pkg-config metadata files cover only the most popular Intel MKL configuration on 64-bit Linux/macOS/Windows operating systems for C.

This table describes the Intel MKL pkg-config metadata files provided and the Intel MKL configurations that they cover.

  • C/C++
  • Fortran
  • Advanced
  • Beginner
  • Intermediate
  • Intel® Math Kernel Library
  • Intel MKL pkg-config metadata files
  • Enabling Intel® MKL in PETSc applications


        PETSc(Portable, Extensible Toolkit for Scientific Computation) is an open source suite of data structures and routines for the parallel solution of scientific applications modelled by partial differential equations. Starting from release 3.8 PETSc users can benefit from enabling Intel® MKL sparse linear operations inside their application. Latest version of PETSc supports analogue for AIJ and BAIJ matrix formats that calls Intel® MKL Sparse BLAS Inspector Executor kernels for matrix vector multiplication.

  • Partners
  • Professional
  • Professors
  • Students
  • Linux*
  • C/C++
  • Fortran
  • Advanced
  • Beginner
  • Intermediate
  • Intel® Math Kernel Library
  • Intel Pardiso
  • Intel Sparse BLAS
  • Intel LAPACK
  • Intel Parallel Direct Sparse Solver for Clusters
  • Academic
  • Big Data
  • Cluster Computing
  • Development Tools
  • Education
  • mkl fails to load

    I installed mkl 2018 on a server running Ubuntu 16.04.

    Whenever I try to use it via python2.7 I get an error saying: "Intel MKL FATAL ERROR: Cannot load or"

    I tried to run it with LD_DEBUG="files libs" and found the following error in the log:
    /opt/intel/mkl/lib/intel64/ error: symbol lookup error: undefined symbol: mkl_sparse_optimize_bsr_trsm_i8 (fatal)

    (there is also a similar error for

    I installed it on another server (running Ubuntu 14.04) in exactly the same way and it worked fine.

    Set boundary condition on a singular matrix

    Hey folks,

    i am a newbie in using the MKL.

    If I build up a stiffness matrix on a FEM problem the stiffness matrix is singular. To solve a problem - no matter which one - you have to make the siffness matrix nonsingular/regular by inserting a boundary condition on the equation A x = b.

    Does somebody of you know if there is a pre-written *.f or *.f90 routine for inserting a boundary condition in a  CSR format of the BLAS/PARDISO package?

    Do I have to write it by my own? :-)




    Issue with mkl_malloc

    Hey guys,

    I have an issue with mkl_malloc function. I have a simple program that does some mathematical calculations and works with no issue. However, when I add the following lines to my program, SOMETIMES it gets stuck at mkl_malloc without throwing any error and I have to force close the program. Any idea what could be the problem?

    ******** System Specifications ***********

    Windows 7 / 64 bit

    Intel Parallel XE Studio 2018

    Visual Studio Enterprise 2017

    ********* Added Code *************

    #include "mkl.h"

    double *A;

    Using MKL with Armadillo.

    I have been able to successfully compile and link MKL to a research code which uses the Armadillo C++ linear algebra library (  I am using dynamic linking in MS Visual Studio 2015.  My program runs fine until the first call to the BLAS routine dgemv().  At that point the program crashes with "exited with code 2 (0x2)."  There are no other messages, including diagnostic messages from Armadillo.

    Ill Conditioned Linear Systems - zgelsd is worst than zgesv?


    We need to solve a ill conditioned linear system of complex numbers.

    Using zgesvxx we are able to solve systemd with condition number rcond up to 10^-16 or also 10^-17.
    For more crictical cases (rcond lower than 10^-17) we tried to use zgelsd (based on an optimization algorithm), 
    but it seems zgelsd is less performing than zgesvxx. 

    In other words zgesvxx is able to solve ill conditioned systems that zgelsd is not able to solve and this is a surprise for us. 

    Where are we wrong? Any suggestion?


    Subscribe to Intel® Math Kernel Library