Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Brian_Murphy
New Contributor II
83 Views

need help understanding error=-4 from pardiso

I am calling pardiso with mtype=11 (real nonsymmetric).

I first call it with phase=11, iparm(1)=0, and the result is error=0.  So all is good.

I then call it with phase=22, and error=0.  So all is still good.

I then call it multiple times with phase=33 with different rhs's.  The first two calls return error=0, but the third call returns error=-4.  What does this mean?  Does -4 mean I have a bug somewhere, or can -4 be generated by something it doesn't like about the rhs?  The rhs for the third call looks normal to me (i.e. no outlier elements).

 

0 Kudos
5 Replies
mecej4
Black Belt
83 Views

I ran an unsymmetric problem with n=576, n_nz=2088 (matrix data file in Matrix Market format) with three different right hand sides, and there were no cases in which the error argument came back with a non-zero value. The code to read the data files and call Pardiso was in C. Conclusion: if there is a problem, it is not generic, but may surface only with specific inputs to Pardiso.

Can you make up an example (code + data) with the failure that you described? Did you ask for iterative refinement? If not, I don't see why you should get that specific error (-4).

Brian_Murphy
New Contributor II
83 Views

Thanks for the reply, mecej4.  The main thing I am trying to find out are the implications of the -4 error code.  I read the documentation about it, and looked at the iparam values returned by the call, but I cannot figure out what pardiso is trying to tell me with this error code.  I don't want to burden anyone by sending the matrix and the three rhs's.  If someone (pardiso's developers?) can tell me what sort of rhs can cause -4, that will give me a clue as to what to look for.  Or if someone can say that the rhs cannot be the reason for -4, that would also help me.

For the time being, I am having my code just ignore the -4 error and continue running.  Results agree with what I get using umfpack.  Umfpack doesn't generate any error codes for this case.

The code+data that you mentioned did not come from me.  I have run lots of other test cases and they run fine and do not generate any nonzero error codes.

Ying_H_Intel
Employee
83 Views

Hi Brian, 

how about you define the nrhs from the begin of  phase=11 call.  I recalled there is issue about nrhs change in phase =33 step in early MKL version. 

There are two workaround, 1. define the nrhs=max of possible value at the begin of program.  or use latest version. for example, the MKL 2016 in http://software.intel.com/sites/campaigns/nest/

Best Regards,

Ying

 

Brian_Murphy
New Contributor II
83 Views

NRHS has to be one.  The calls are part of an Arnoldi iteration to find eigenvalues, so the rhs vectors are generated on the fly one at a time.

I tried installing the MKL for Composer XE 2016, but it would not work with XE 2013.  I should point out that I cannot upgrade my version of Composer XE because I am not the administrator of the license.

MariaZh
Employee
83 Views

Hi Brian,

Thanks for your question.
Can you please provide additional information, so that we can investigate this problem and find the root cause:
Set parameter msglvl to 1 and show me the output info and print number of pivots after factorization step (phase = 22) which value is iparm(30) ( iparm[29] in C ).


Best regards,
Maria.

Reply