Intel® Math Kernel Library

example code of Direct Sparse Solver (DSS) Interface gives wrong result


 I am trying to use DSS routine to solver linear equation with a sparse matrix. I found the example code under the intel compiler directory named

dss_sym_f90.f90 and compiled it as ifort dss_sym_f90.f90 -o test-dss -mkl. The code solves a 5*5 linear equation and produces a wrong solution as

"Solution Array:   -326.333   983.000   163.417   398.000    61.500"  

matrix multiplication speedup


I'm using cblas_dgemm to calculate matrix multiplication. For random generated matrix X of size N * N (N could be 100),  I calculate Y = X^T * X. (X^T is the tranpose of X). I can do it in two ways: (1) using cblas_dgemm to calculate Y directly (2) using a forloop that for i = 1:N, Y += X[i] * X[i]^T, where X[i] is the i_th column of X. 

By comparing the speed, theoretically, they should have same complexity of N^3. But in reality, (2) way might take 4 times longer than (1). Could you help me to understand this?


1D convolution of a 3D array using Intel MKL

I have a 3D array which is stored in a columnwise fashion.

for( int k = 0; k < nTop; k++ ) // Loop through the tops. 
    for( int j = 0; j < nCol; j++ ) // Loop through the columns. 
        for( int i = 0; i < nRow; i++ ) // Loop through the rows 
            ijk = i + nRow * j + nRow * nCol * k; 
            my3Darray[ ijk ] = 1.0; 

I want to apply three different 1D kernels of size 2x1 across all the rows, all the columns, and all the tops of my 3D array separately and one after another. 

How to link Calculix with Pardiso using Intel MKL


I was wondering if it is possible to link Calculix v2.7 (an open source application) with Pardiso using Intel MKL somehow. I am a complete beginner in this field so I was wondering if it is possible can someone provide the steps to do so. I have Intel Parallel Studio 2015. 

PS. I have gone over the link: It provides some help but I am still somewhat lost.

Any help would be appreciated



Basic Code of Using MKL FFT on MIC



In our local cluster we have a bunch of MIC's, which are (almost) never esed. I would like to give it the try, but I have no experience iwth the MKL library or MIC. My programs are very simple and they are based on FFT:

I have an iterative process in which the smae update procedure is applied to the previous data:

Diverge in Newton Method


I encounter a diverge problem when using Intel MKL PARDISO to solve a transient simulation by Newton method.

This case is a unsymmetrical matrix with  size is 64,000 and 1,721,082 non-zeros (L+U).

I found that it diverges when the values are changes during a sequential solving.

I tried to use CGS to "iparm[3]=101" to reduce the error, different ordering and with/without scale.

But they don't work in my case.

Is there a possible way or options to deal with it?



Different results using 11.2.1 vs 11.1.0

I have the identical SPD matrix and rhs but got the different solution using mkl 11.2.1 on win vs 11.1.0 on linux.

on win

Major version: 11
Minor version: 2
Update version: 1
Product status:  Product
Build: n20141023
Processor optimization: Intel(R) Streaming SIMD Extensions 4.2 (Intel(R) SSE4.2) enabled processors

on linux

Sparse-Sparse Matrix Multiplication


I have used mkl_dcsrmultcsr in my research. However, it is performing double pass to compute sparse*sparse matrix product. For small size problems, this is not a problem, however for large size problems (e.g. matrices of size ½ billion by ½ billion) this is time consuming and it would be better if MKL can do this multiplication in a single pass in a parallel setup.

[Scalapack] Please Help with using pdgesv

Hello all:

 I'm trying to solve a linear system (9 by 9 full matrix) by pdgesv in c. I use the example code ( and compiling is ok. However, there is a error info after calling pdgesv: 

“On entry to PDGESV parameter number 602 had an illegal value”.

Подписаться на Intel® Math Kernel Library