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

Iterative PARDISO

sh_t_
Beginner
1,621 Views

Hi,

I try to use PARDISO as an iterative solver not a direct solver. I have problem for defining IPARMs and DPARMs. I want an example to show hove can i use them and which phases i need to call. I have read the manual and also the example for pardiso_symm_iter.f but in that one, the auther has used default iparm and dparm. In iterative solver do i need to call other phases that phase=3? I want iterative method with conjugate gradient preconditioner . I appreciate if some one can help me.

Best regards

0 Kudos
1 Reply
Zhang_Z_Intel
Employee
1,621 Views
MKL PARDISO supports a direct-iterative combined method to accelerate the process of solving many matrices that have the same sparsity pattern but with different nonzero coefficients. Does your application fall into this model? If so, here's what you need: First, perform an LU decomposition (LLT) on the first matrix and solve it. This can be one with a call to PARDISO with phase = 13. Then, for all the other matrices you can solve them with phase = 23 and an an appropriate setting for iparm(4). The value of iparm(4) controls whether you want to use the CGS preconditioner (for unsymmetric matrices) or the CG preconditioner (for symmetric matrices). You can check if CGS or CG succeeds by checking the value returned in iparm(20). Here is an example:
iparm(4) = 0 phase = 13 PARDISO(phase, A_0,…) Do I = 1, number_of_matrix iparm(4) = 61 phase=23 PARDISO(phase, A_i,…) Enddo
Please let us know if this solves your problem. Thanks, Zhang
0 Kudos
Reply