# Use of iparam(30) for PARDISO

## Use of iparam(30) for PARDISO

Hi
I just started using v10.2 update 2 and found that for mytpe =2, PARDISO reports the number of equation when it detects a zero:

"iparm(30) - the number of equation where PARDISO detects zero or negative pivot for MTYPE=2 (real positive
definite matrix) and MTYPE=4 (complex and Hermitian positive definite matrices). If the solver detects a zero or negative pivot for these matrix types, the factorization is stopped, PARDISO returns immediately with an error (error = -4) and iparm(30) contains the number of the equation where the first zero or negative pivot is detected."

As far as I remember, PARDISO does an internal equation ordering for the given matrix. I just want to know the reported Equation # is the equation number associated with PARDISO's internal ordering or the equation number referring to my original matrix. The former really deos not help since we have no idea how the PARDISO internally orders equations. Thus, what I really need is the one that refers to the order given with the original matrix.

Bulent

6 posts / 0 new
For more complete information about compiler optimizations, see our Optimization Notice.

Quoting - bulent
Hi
I just started using v10.2 update 2 and found that for mytpe =2, PARDISO reports the number of equation when it detects a zero:

"iparm(30) - the number of equation where PARDISO detects zero or negative pivot for MTYPE=2 (real positive
definite matrix) and MTYPE=4 (complex and Hermitian positive definite matrices). If the solver detects a zero or negative pivot for these matrix types, the factorization is stopped, PARDISO returns immediately with an error (error = -4) and iparm(30) contains the number of the equation where the first zero or negative pivot is detected."

As far as I remember, PARDISO does an internal equation ordering for the given matrix. I just want to know the reported Equation # is the equation number associated with PARDISO's internal ordering or the equation number referring to my original matrix. The former really deos not help since we have no idea how the PARDISO internally orders equations. Thus, what I really need is the one that refers to the order given with the original matrix.

Bulent

ALso, I noticed that I am getting different equation number when I change my preference for fill-in reducing order:
iparam[2] = 0 : minimum degree algorithm
iparam[2] = 2 : nested dissection from METIS

B.

Hello Bulent,

The number of first zero/negative pivot relates toinitial matrix A.

But it's Ok ifthe numbers are different for METIS and MMD reorderings. It just means that the order of factorizationwas different as well and we faced the very first zero/negative pivot at diferent places of the matrix (if your matrix contains more than one). This numbermay also vary even if we use several threads for computation as threadsmay compute matrix columns in parallel: it's an indeterministic process.

regards,
Konstantin

Bulent,

I have one more comment: you mentioned that do not know anything about reordering using inside PARDISO. That's not true; you may simply obtain a permutation vector used for reordering: just set iparm(5)=1 and it will be copied to your 'perm' array after the "Reordering and symb.factorization" phase of PARDISO (1st calling of pardiso function).

More details could be found in mklman.pdf

Regards,
Konstantin

Quoting - Konstantin Arturov (Intel)

Bulent,

I have one more comment: you mentioned that do not know anything about reordering using inside PARDISO. That's not true; you may simply obtain a permutation vector used for reordering: just set iparm(5)=1 and it will be copied to your 'perm' array after the "Reordering and symb.factorization" phase of PARDISO (1st calling of pardiso function).

More details could be found in mklman.pdf

Regards,
Konstantin

I'm sorry, iparm(5)=2 is correct.

Quoting - Konstantin Arturov (Intel)

Hello Bulent,

The number of first zero/negative pivot relates toinitial matrix A.

But it's Ok ifthe numbers are different for METIS and MMD reorderings. It just means that the order of factorizationwas different as well and we faced the very first zero/negative pivot at diferent places of the matrix (if your matrix contains more than one). This numbermay also vary even if we use several threads for computation as threadsmay compute matrix columns in parallel: it's an indeterministic process.