Intel® Math Kernel Library

Size limit??

Hello there!

I'm new to Intel MKL, and I was able to compile a simple program using VML under Netbeans. The example I'm testing is calculating the square root of a vector. Everything work fine, until I increase the size of the vector: if my vector has more than 3421 elements (yes, that's my "magic number"), I get the following error:

MKL func load error: /opt/intel/mkl/ undefined symbol: vmlGetErrorCallBack

Here's the code:


#include "mkl.h"

using namespace std;

dgels in ->

Dear Board!

I just installed the 10 Update 2 Version of MKL, and the dgels function seems not to be working anymore. When I do a debug-break in Visual Studio 2005, I see that the Call stack is something like (highest being most current)










MKL Pardiso: (iparm(3) > 1 .AND. iparm(60) = 1) equals "Mission Impossible"

This is borderline silly. The MKL user manual reads:

If iparm(60) is set to 0, then the in-core PARDISO is used.
If iparm(60) is set to 2 - the OOC PARDISO is used. If
iparm(60) is set to 1 - the in-core PARDISO is used if the
total memory (in MBytes) needed for storing the matrix
factors is less than the value of the environment variable

And, there's a warning right above that in MKL user manual reading:

Pardiso iparm(21) = 2 No Longer Available?

Is pardiso iparm(21) = 2 no longer available? The pardiso user guide read

Very Robust Method based on Symmetric Weighted Matchings and 1 x 1 and 2 x 2 Bunch and Kaufmann Pivoting. The MKL manual does not provide that option (any more?).

Now only iparm(21) = 0 (1x1 diagonal pivoting) and iparm(21) = 1 (1 x 1 and 2 x 2 Bunch and Kaufmann Pivoting) are available, according to MKL manual.


Version 9 to 10 Update 2 Link Error

When I was using MKL 9 (last release), inside a driver for pardiso I called "omp_get_max_threads()" to set iparm(3) in pardiso. I delcared omp_get_max_threads as INTEGER and the line after that as EXTERNAL in that driver procedure. I linked against libguide.lib (static, I know, but it Worked) and the other libraries, at MKL 9 they were mkl_solver.lib, mkl_c.lib (when building for 32bit, did not use mkl_c.lib for em64t), mkl_lapack.lib. I had set environment variable OMP_NUM_THREADS equal to env NUMBER_OF_PROCESSORS.


When I use the Fortran95 interface for the routine GGEVX I get an error message following this call:

The message is that argument no. 26 in DGGEVX is wrong, this is LWORK.
If I skip the calculation of RCONDE the problem disappears.
BALANC = "B" in the above call. The test matrices A and B are 2x2.
I use MKL 10.0.2 and IVF 10.1.019.


Only 10% speed increase for dgemv?

Hi all

I am evaluating the Intel MKL to use them in financial applications (Monte Carlo etc). I get good speed increases for random number generation, but when doing matrix-vector multiplications I only get around 10% even though I would expect muchmore.

My timings are:

For n=2000, ITERATIONS = 1000:

MKL dgemv: 10.656 sec

Naive C++: 11.782 sec

For n=5000, ITERATIONS = 200:

MKL dgemv:12.828 sec

Naive C++: 13.985 sec

I have included the code below.

Microsoft Visual C++ 8

Segmentation Fault with DSYEVD

A segmentation fault occurs when I run following simple c code complied by dynamically on using MKL libraries on Linux:

int n=3;
double a[9]={1, 0.2, 0.1,
0.2, 1.1, 0.05,
0.1, 0.05, 0.9};

double eigval[3];

double work[37];
int lwork=37;

int iwork[18];
int liwork=18;

int info=0;

DSYEVD("V","U", &n, a, &n, eigval, work, &lwork, iwork, &liwork, &info);

Problem with pardiso

I am new to ifort and MKL and am trying to help a co-worker run an example problem on an SGI Altix 330. I have installed the ifort and MKL files I recieved and am trying to run the pardisio_sym_f.f example provided with MLK. When I issue

bash ifort pardiso_sym_f.f

I get the following error, which doesn't make any since to me.

ortcom: Error: pardiso_sym_f.f, line 37: Cannot open include file 'mkl_pardiso.f77'
include 'mkl_pardiso.f77'
compilation aborted for pardiso_sym_f.f (code 1)

Subscribe to Intel® Math Kernel Library