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

question on PARDISO iterative solver

chen146
Beginner
378 Views

Hello,

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 )
================

Times:
======
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

Statistics:
===========
< 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:

iparm(1)=1

iparm(3)=1

iparm(10)=13

. 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,

CC

0 Kudos
1 Reply
Alexander_K_Intel2
378 Views

Hi,

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

0 Kudos
Reply