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

Built-in Diagonal Preconditioner for Sparse Matrix?

mdobossy
Beginner
291 Views
I have a system of equations I am trying to solve using the FGMRES sparse solver (i.e.- Ax=b). From the system I am solving, I have found in the past that a diagonal preconditioner is optimal (where by a diagonal preconditoner, I just mean the diag. elements of A, and solve P^-1Ax=P^-1b).

I could easily construct this preconditioning matrix for use with the FGMRES solver, but am wondering if there is a built in way to pull this diagonal matrix out? I have noticed that there is a ILUT and ILU0 preconditioner available, and seeing as diagonal preconditioning is quite common, I thought there might be a built in routine to do this as well. (otherwise, I can just write my own).

Thanks!
0 Kudos
2 Replies
Sergey_K_Intel1
Employee
291 Views

Hello,

MKL Sparse BLAS contain a set of triangular solvers for6 most popular sparse formats (compressed sparse row, compressed sparse columns, block sparse row, coordinate, diagonal and skyline formats). You canperform diagonal preconditioning if you call one of routines mkl_dcsrsv, mkl_dcscsv, mkl_dcoosv and etc depending on sparse representation of your coefficient matrix and set the first parameter of descriptor array matdescra to 'D' or 'd'. The routine automatically extracts the main diagonal of coefficient matrix and performs diagonal preconditioning. Please see the MKL Reference Manual for more details.

All the best

Sergey

0 Kudos
mdobossy
Beginner
291 Views
Thanks for the info Sergey! It all looks pretty strait-forward now.

-Mark
0 Kudos
Reply