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

Pardiso : OOC mode + iparm[1]!=0 + phase=13 = error after factorisation

Thierry_LE_SOMMER__E
423 Views
Hello,

I have a problem (Access violation reading) when I use Pardiso in OOC mode and I try to do phases 1 to 3 at the same time (phase parameter = 13). But when I do phase 3 separately, it works.

Here is a summary of my code :

[cpp]iparm[0] = 1; /* No solver default */
iparm[1] = 2; /* Fill-in reordering from METIS */
iparm[59] = 2; /*In-Core or Out-Of-Core */

maxfct = 1; /* Maximum number of numerical factorizations. */
mnum = 1; /* Which factorization to use. */
msglvl = 1; /* Print statistical information to the screen */
error = 0; /* Initialize error flag */

phase = 12;
PARDISO (_pt, &maxfct, &mnum, &mtype, &phase,
	&n, a, ia, ja, &idum, &nrhs,
	iparm, &msglvl, B, X, &error);

phase = 33;
PARDISO (_pt, &maxfct, &mnum, &mtype, &phase,
        &n, a, ia, ja, &idum, &nrhs,
	iparm, &msglvl, B, X, &error);[/cpp]
This code works fine in all cases.

But if I want to do phases 1-3 in a single call (phase=13), I get a "Access violation reading" in Pardiso.
This occurs only on large scale matrix when OOC is really used (files write/read) and if I set iparm[1]=0, it works fine.

Thierry
0 Kudos
7 Replies
Gennady_F_Intel
Moderator
423 Views
Thierry,
is it win64?
what is thenumbers of non-zero elements?
--Gennady
0 Kudos
Thierry_LE_SOMMER__E
423 Views
I run MKL on Windows 7 64 bits / Visual Studio 2008 / Intel Core i7 M620 / 4Go RAM

For this problem I tested 2 matrices :
(1) 54243x54243 / 2053206 non-zeros
(2) 408483*408483 / 16082406 non-zeros

To force the OOC mode, I set the environment variable MKL_PARDISO_OOC_MAX_CORE_SIZE to 100 for the first matrix and 3000 for the second matrix.

I use MKL 10.2.6 but I did some more tests with MKL 10.2.5 and 10.3.0 beta. I can't reproduce the problem with MKL 10.2.5 and 10.3.0 beta. So, this problem occurs only with MKL 10.2.6

I don't see any difference in my compiler/linker parameters between MKL 10.2.5 / MKL 10.2.6 / MKL 10.3.0

Thierry
0 Kudos
Gennady_F_Intel
Moderator
423 Views
thanks for the update.
I'm sure that probably does not matter, but nevertheless, is this SPD matrixes?
and
is this static or dynamic linking?
--Gennady
0 Kudos
Thierry_LE_SOMMER__E
423 Views
The matrices are symmetric positive-semidefinite and it's a static linking.

For the matrix type, I set mtype=-2. Can I set mtype=2 but I am not sure that my matrices are really SPD ?
0 Kudos
Gennady_F_Intel
Moderator
423 Views
yes, you can try
0 Kudos
Gennady_F_Intel
Moderator
423 Views
Thierry,I am interested in the result of this attempt?
0 Kudos
Thierry_LE_SOMMER__E
423 Views
First, I gave an explanation of what I'm doing here : http://software.intel.com/en-us/forums/showthread.php?t=77423

I tried to put mtype = 2. It works for a few tens of iterations, but then I get an error indicating that my MKL matrix is not SPD.

So, I use again mtype=-2

Thierry
0 Kudos
Reply