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

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

Аватар пользователя Thierry LE SOMMER [Eurodecision]

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 :

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);

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

--------------------------------- Consultant EURODECISION http://www.eurodecision.com
8 сообщений / 0 новое
Последнее сообщение
Пожалуйста, обратитесь к странице Уведомление об оптимизации для более подробной информации относительно производительности и оптимизации в программных продуктах компании Intel.
Аватар пользователя Gennady Fedorov (Intel)

Thierry, is it win64? what is thenumbers of non-zero elements? --Gennady

Аватар пользователя Thierry LE SOMMER [Eurodecision]

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

--------------------------------- Consultant EURODECISION http://www.eurodecision.com
Аватар пользователя Gennady Fedorov (Intel)

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

Аватар пользователя Thierry LE SOMMER [Eurodecision]

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 ?
symmetric positive-semidefinite matrix

--------------------------------- Consultant EURODECISION http://www.eurodecision.com
Аватар пользователя Gennady Fedorov (Intel)

yes, you can try

Аватар пользователя Gennady Fedorov (Intel)

Thierry,I am interested in the result of this attempt?

Аватар пользователя Thierry LE SOMMER [Eurodecision]

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

--------------------------------- Consultant EURODECISION http://www.eurodecision.com

Зарегистрируйтесь, чтобы оставить комментарий.