Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Pardiso claims to not have enough memory

Harald_H_
Beginner
851 Views

Hi,

pardiso claims to not have enough memory for a very small system with 54 unknown (and with many more small systems, but for this, I created an example code).

System is Windows and I use the MS Visual Studio 11 compiler using the threaded library with 32 bit indices.

I also had tested the 64 bit indices, with the same effect (maybe not with exactly this data).

I get the error code -2 (not enough memory) very often, preferably with smaller equation systems, but that's maybe because the smaller systems are used more often.

Any suggestion how to solve this, is welcome,

Harald

The small example code and test data that fails are attached.

0 Kudos
7 Replies
mecej4
Honored Contributor III
851 Views

Which version of MKL did you use? Your program built and gave the correct results using MSC 18.0 and MKL 11.2.2 as well as with the current version of Intel C and MKL:

Intel(R) Math Kernel Library Version 11.2.2 Product Build 20150120 for Intel(R) 64 architecture applications
open file 'Nxb-38.txt'
x[0] = 1.439951e-010
x[53] = -2.173159e-003

 

0 Kudos
Harald_H_
Beginner
851 Views

I'm using MKL 11.3.0.

0 Kudos
Gennady_F_Intel
Moderator
851 Views

I see the similar result with the latest vesion of MKL

open file 'Nxb-38.txt'

Major version:           2017
Minor version:           0
Update version:          0
Product status:          Product
Build:                   20160801
Processor optimization:  Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) enabled processors
================================================================

 x[0] == 1.43995e-010
 x[53] == -0.00217316
 passed

0 Kudos
Harald_H_
Beginner
851 Views

Does PARDISO respects the number of threads set with the environment variable MKL_NUM_THREADS?

0 Kudos
Gennady_F_Intel
Moderator
851 Views

yes, in the case if you linked with threaded version of MKL.

0 Kudos
Harald_H_
Beginner
851 Views

Maybe something with my compiler or linker calls is wrong:

Visual Studio is installed in: C:/Program Files (x86)/Microsoft Visual Studio 11.0/

set VC = C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin

%VC%/x86_amd64/cl /c /O2 /EHcs /I"%MKLROOT%/include" test_mkl.cpp /Fotest_mkl.obj

%VC%/x86_amd64/link.exe /libpath:"%MKLROOT%/lib/intel64_win" /machine:x64 mkl_intel_lp64.lib mkl_core.lib mkl_intel_thread.lib libiomp5md.lib /out:test_mkl.exe test_mkl.obj

I tried setting MKL_NUM_THREADS=1 and also to link against the sequential libs (see below) to exclude an influence of threading, but it leads to the same result.

%VC%/x86_amd64/link.exe /libpath:"%MKLROOT%/lib/intel64_win" /machine:x64  mkl_intel_lp64.lib mkl_core.lib mkl_sequential.lib /out:test_mkl.exe test_mkl.obj

 

0 Kudos
Gennady_F_Intel
Moderator
851 Views

at the first glance, all is OK with your settings. I have installed 11.3 update 3 version of MKL on my system, and I also used exactly the same linking line. Please see below the output i have. 

...\_Forums\u684920>test.exe
open file 'Nxb-38.txt'
Major version:           11
Minor version:           3
Update version:          3
Product status:          Product
Build:                   20160413
Processor optimization:  Intel(R) Advanced Vector Extensions (Intel(R) AVX) enabled processors
================================================================

 x[0] == 1.43995e-010
 x[53] == -0.00217316
 passed

 

0 Kudos
Reply