question on PARDISO iterative solver

question on PARDISO iterative solver


I can successfully use the PARDISO to solve my problem with iparm(4)=0. However when I try to use it as an iterative solver by setting iparm(4)=61 and keepping all the other parameters the same, it gives error. I turn on msglvl=1 to check the detail, and it says:


=== PARDISO is running in In-Core mode, because iparam(60)=0 ===
Percentage of computed non-zeros for LL^T factorization
 37 %  87 %  100 %
*** Error in PARDISO  ( numerical_factorization) error_num= -1
*** Error in PARDISO: cgs error iparam(20) -22

=== PARDISO: solving a complex nonsymetric system ===
The local (internal) PARDISO version is                          : 103911000
1-based array indexing is turned ON
PARDISO double precision computation is turned ON
Minimum degree algorithm at reorder step is turned ON
Single-level factorization algorithm is turned ON

Summary: ( starting phase is reordering, ending phase is solution )

Time spent in calculations of symmetric matrix portrait (fulladj): 0.000010 s
Time spent in reordering of the initial matrix (reorder)         : 0.000014 s
Time spent in symbolic factorization (symbfct)                   : 0.000065 s
Time spent in copying matrix to internal data structure (A to LU): 0.000000 s
Time spent in factorization step (numfct)                        : 0.000088 s
Time spent in iterative solver at solve step (cgs)               : 0.000259 s cgx iterations -22

Time spent in allocation of internal data structures (malloc)    : 0.002747 s
Time spent in additional calculations                            : 0.000025 s
Total time spent                                                 : 0.003208 s

< Parallel Direct Factorization with number of processors: > 6
< Hybrid Solver PARDISO with CGS/CG Iteration >

< Linear system Ax = b >
             number of equations:           4
             number of non-zeros in A:      8
             number of non-zeros in A (%): 50.000000

             number of right-hand sides:    4

< Factors L and U >
< Preprocessing with multiple minimum degree, tree height >
< Reduction for efficient parallel factorization >
             number of columns for each panel: 128
             number of independent subgraphs:  0
             number of supernodes:                    2
             size of largest supernode:               2
             number of non-zeros in L:                8
             number of non-zeros in U:                1
             number of non-zeros in L+U:              9
             gflop   for the numerical factorization: 0.000000

             gflop/s for the numerical factorization: 0.000364

In this example I use phase=13. I also tried to use phase=11 with iparm(4)=0 and then followed by phase=23 with iparm(4)=61. It gives similar error message.

For the above example, the other non zero iparms I use is:




. I also tried to use the iparm in the example file pardiso_unsym_complex_f.f , but similar error message appears.

How should I modified the code to make the iterative solver works? Thank you.

Best regards,


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


Based on manual it's mean that iterative algorithm show slow convergence that can happened in case when main matrix and matrix for preconditioner differ a lot. I've modified example pardiso_complex_unsym_f and didn't got such error - which version of MKL do you use? 

With best regards,

Alexander Kalinkin

Leave a Comment

Please sign in to add a comment. Not a member? Join today