Intel® Math Kernel Library

mkl_?csrcoo -- description of parameter nnz


is the description of parameter nnz in function mkl_?csrcoo correct?

The manual states that nnz is an output parameter specifying the number of non-zero elements in matrix A. However, I feel like nnz is an input parameter.

A minimal example (conversion of a unit matrix of size 10 from COO to CSR format in C++) only works if I define nnz = 10 before calling the function. If I set, say, nnz = 5, then only the first 5 elements are set in the CSR arrays.

Could someone check or disprove that?


ILP64 and LP64 in the same application for sparse matrix operations


I am working on a c++ application which does solves and operations with sparse matrices. Because the matrices are large, I am using pardiso_64 rather than pardiso. (I am using the LP64 interface.)

The problem is that I also do other things with the matrices, such as mkl_dcsrsymv for matrix-vector products. However there is no "mkl_dcsrsymv_64" and hence I must copy the 64-bit integer matrix index arrays (used in pardiso_64) to 32-bit integer arrays.

Intel MKL WARNING: Library mkl_avx.dll (MKL type 7) is not suitable for this processor (MKL type 6).

One of our clients is getting the warning in the subject, followed by the program failing, running our software.  Any ideas what is causing this or how to resolve it?

The user is using a 32-bit version of Windows.

The processor is

Our software is built with “Intel(R) Parallel Studio XE 2015 Update 1 Composer Edition for Fortran Windows” .


The difference in the common sparse solver function result and cluster sparse solver function result


I'm Using MKL Pardiso Sparse Solver (PARDISO).


Some time ago, I Using Intel Parallel Studio 2013 Version (MKL 11.2).

Recently, I'm Update Intel Parallel Studio 2016 (MKL 11.3).

This Version Support Cluster Sparse Solver. so I using this Function.

But Solving result is difference. (about 0.02)



Originally does the other result come out?

Or is there the condition getting the little more exact result?

Question about Parallel thread number of Pardiso

Hi all,

In my program, I am not set restriction of OpenMP thread number, but I found it only using 4 OpenMP threads on my machine. Why?


My CPU configuration is (reported by Intel VTune ):
Name: Intel(R) Core(TM) Processor 2xxx Series
Frequency: 2.2 GHz
Logical CPU Count: 8 


OS is windows 10.


Following is console output by pardiso and openmp while setting KMP_SETTINGS=1 and pardiso message level parameter to 1:

Eigenvalue routine heevr goes wrong very weirdly

I am trying to make use of the official example code of heevr routine in LAPACK. Once I changed the range parameter from 'V' to 'A' and commented out il and iu, the first two eigenvalues wrongly showed zero. Below is my tinily modified example code. I used icpc 13.1.3 and run in Linux. Thanks in advance.

#include <stdlib.h>
#include <stdio.h>
#include "mkl_lapacke.h"

Rank-1 update to LU matrices


I have a matrix Y for which I need LU factors that I can get using DSS interface Routines like dss_factor_complex. However, the diagonal entries of this matrix need to be updated after each iteration of a loop that gets me LU factors.

Since Y is very large, and LU factorization will take a lot of computational effort. Is there a way to update LU factors when Y updates without having to do LU factorization on every iteration?

I am trying to do this:

iteration1: Y (original) > reorder > factor (LU)> solve

Subscribe to Intel® Math Kernel Library