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

Pardiso: error during symbolic factorization

pf289
Beginner
1,925 Views
I'm using Pardiso to solve a very large sparse linear system and I get the following error message:
ERROR during symbolic factorization: -2
According to the description of the Pardiso errors, this corresponds to a problem with the memory allocation in Pardiso.
I've doubled the memory available for the computation but I still get the same error message.
Does anyone have any clues on how to get around this?
Thanks!
0 Kudos
15 Replies
Alexander_K_Intel2
1,925 Views
Hi,
What version of MKL do you use? To answer this question we need to know additional detailes, like values of iparm, szie of matrix, pardiso output with msglvl=1. The best variant is to implement testcase and send it to us to reproduce it on our side.
With best regards,
Alexander Kalinkin
0 Kudos
pf289
Beginner
1,925 Views
Dear Alexander
Thank you very much for your reply. Here is the info you requested:
-We have MKL 10.3 which comes with the Intel C Intel 64 Compiler XEfor applications running on Intel 64, Version 12.1.4.319 Build 20120410
- options in Pardiso:
iparm[0] = 1;
iparm[1] = 2;
iparm[2] = 120;
iparm[3] = 0;
iparm[4] = 0;
iparm[5] = 0;
iparm[6] = 0;
iparm[7] = 2;
iparm[8] = 0;
iparm[9] = 13;
iparm[10] = 1;
iparm[11] = 0;
iparm[12] = 1;
iparm[13] = 0;
iparm[14] = 0;
iparm[15] = 0;
iparm[16] = 0;
iparm[17] = -1;
iparm[18] = -1;
iparm[19] = 0;
maxfct = 1;
mnum = 1;
msglvl = 1;
error = 0;
- Pardiso output:
Size of matrix = 406440692
*** Error in PARDISO ( insufficient_memory) error_num= 0
PARDISO Internationalization error. Message 0 is unknown.
total memory wanted here: 1511 kbyte
symbolic (max): 0 symbolic (permanent): 0
real (including 1 factor): 0
=== PARDISO: solving a real nonsymmetric system ===
Summary: ( reordering phase )
================
Times:
======
Time spent in additional calculations : 0.025764 s
Total time spent : 0.025764 s
Statistics:
===========
< Parallel Direct Factorization with number of processors: > 120
< Numerical Factorization with BLAS3 and O(n) synchronization >
< Linear system Ax = b >
number of equations: 64000
number of non-zeros in A: 406440692
number of non-zeros in A (%): 9.922868
number of right-hand sides: 1
< Factors L and U >
number of columns for each panel: 72
number of independent subgraphs: 0
< Preprocessing with state of the art partitioning metis>
number of supernodes: 0
size of largest supernode: 0
number of non-zeros in L: 0
number of non-zeros in U: 0
number of non-zeros in L+U: 0
ERROR during symbolic factorization: -2
Thank you very much
best
Pau
0 Kudos
Alexander_K_Intel2
1,925 Views
Hi,
You are correct; its look like there is not enough memory for correct PARDISO call. Could you provide size of your RAM? And is it possible to send you matrix with program to me to investigate it on my side?
With best regards,
Alexander Kalinkin
0 Kudos
Gennady_F_Intel
Moderator
1,925 Views
in this case, pls try to use out of core version ( set iparm(60) == 2 ) and let us know ho it will work.
0 Kudos
pf289
Beginner
1,925 Views
Hi,
I'm using 300GB of RAM memory. I've also tried setting iparm(60)=2 but it makes no difference. I tried to send you the matrix so that you can test it on your side but it turns out that the file is 3GB. Any ideas about how I could send it to you?
Many thanks
Pau
0 Kudos
Alexander_K_Intel2
1,925 Views
Hi,
Maybe I wrong, but it's seemed that you solve some problem on mesh size 40x40x40. If it's true, is it possible to made testcase on lower mesh size, for example 10x10x10? In such case there are no problems to send such matrix by any possible way.
With best regards,
Alexander Kalinkin
0 Kudos
pf289
Beginner
1,925 Views
Dear Alexander,
In fact I'm solving a 2d problem on two patches with 80x80 grid points each and there are 5 functions to be determined. The point is that for lower resolutions, say up to 70x70 grid points on each patch, Pardiso works perfectly fine. However, when I try to increase the resolution, then Pardiso gives me the error I've reported. I can try to set up a website and you can download the matrix from there. Would this be ok for you? Otherwise I can send you the matrix for a coarser grid if that's any helpful.
best
Pau
0 Kudos
Gennady_F_Intel
Moderator
1,925 Views
>> I can try to set up a website and you can download the matrix from there. Would this be ok for you?
<< yes, please do that and give us the link to this site. it would be also helpful to give us the test how to read these data and run pardiso...
0 Kudos
pf289
Beginner
1,925 Views
Sorry for the delay, I've been away for a few days.
I've set up a website where you can download the matrix and the right hand side of the system to be solved:
fileLich.out contains the matrix itself, fileLichRow.out contains the rows' indices, fileLichCol.out contains the columns' indices, and fileRHS.out contains the RHS. fileLichPara.out contains the number of rows and the total length of the matrix.
There's also a simple c code (ForTest.c) which loads the data and solves the linear system. It returns the error that I've previously reported.
Do let me if you have any problems with any of those files.
Many thanks
Pau
0 Kudos
Bit_Stekov
Beginner
1,925 Views

I have the same problem, I'm running 3D simulations on cluster with 120 Gb RAM. For the small meshes (200 000 elements) everything works perfectly, but if I'm trying to increase number of elements (6 mllion or more) I am getting the same error=-2 durig factorithation. I'm using default values of iparm and solving symmetric indefinite matrix. May be you know what it could be and how to resolve this problem?

0 Kudos
pf289
Beginner
1,925 Views

Unfortunately I wasn't able to solve the problem, so I can't really help you with your problem...

0 Kudos
Roman_A_Intel
Employee
1,925 Views

Hi,

I have solved your problem but I made some changes in your test (see Attachments). Also you could try to use out of core version of Pardiso( iparm[59] = 2 ) or your could try to reduce the number of threads because for big number of threads it requires more additional memory.

Regards,

Roman

0 Kudos
uzebeckatrente
Beginner
1,912 Views

Hi Roman, I am running into the same problem and am wondering what changes you made to solve this problem? It seems there is no good standard solution anywhere on the internet. Thanks a ton! Felix

0 Kudos
Kirill_V_Intel
Employee
1,892 Views

Hi,

Please create a separate post about your particular problem. The overall problem defintion is quite general and the observed error can be caused by different reasons.

Also, please, provide more details about your use case: MKL version, size of the matrix, msglvl output, your iparm settings, your hardware, and what you see exactly. Ideally, a standalone reproducer would be the best as we can then check what exactly happens rather than give you some general piece of advice.

Best,
Kirill

0 Kudos
pf289
Beginner
1,924 Views

Thanks a lot!

Pau

0 Kudos
Reply