When I call PARDISO with too many rhs's I get wrong answers.
I first call PARDISO for phase 11 and phase 22. I keep the factored matrix in memory, and, subsequently leave the subroutine that calls PARDISO.
I later call PARDISO to perform only phase 33. I send in a fully populated, "stacked" rhs vector (i.e. total number of entries is neq*nrhs).
Here's what I've found:
Case 1: When I call PARDISO for phase 33 only and all 9,850 rhs's, the PARDISO returns completely wrong answers. Many NaN's and all other completely wrong vales.
Also, after the call to PARDISO, I cannot successfully deallocate some arrays (these arrays are totally unrelated to the matrices used by PARDISO). The message is
"Invalid pointers" I suspect that PARDISO has overwritten some of the pointers (and/or values in these arrays that I cannot deallocate. Perhaps a memory leak????
Case 2: When I call PARDISO for phase 33 only, sending in 3,000 rhs's at time (i.e I call PARDISO 4 times (1st 3000, 2nd 3000, 3rd 3000, 4th 3000, and, then the remaining 850 rhs) I get wrong answers,
BUT, the answers are almost reasonable. There are no NaN's and without knowing I might guesss the answers are correct. In the Case 2, the deallocation problem, mentioned in case 1, does NOT occur.
Case 3: When I call PARDISO for phase 33 only, sending in 100 rhs's at a time (i.e. I call PARDISO 99 times) I get the correct answers for everything, and, there are no problems.
===============
What is causing this problem? I am concerned that other models (let's say I've got 500,000 equations) may provide wrong answers, and, I won't know it (i.e. I have no way
of knowing the largest number of rhs's that I can send into PARDISO in a single chunk, for a general model.
==============
I know that I'm not running out of central memory, and, I know that I'm not running out of swap space. Do I have a number of threads problem??
=====================
MKL: Version 10.3 Update 4
Operating System: Red Hat Enterprise Linux AS release 4 (Nahant Update 8)
Environment Variables set:
MKL_NUM_THREADS = 32
Computer has 32 processors
Computer has 198 Gb of memory
Computer has 68 Gb of available swap space
==================================================
I am using solution PARDISO mtype=6 (i.e. double precision complex, symmetric, in-core only)
Number of equations is 183,180
Needed number of rhs's = 9,850
==================================================
Any help would be GREATLY appreciated.
Thanks, Bob