Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software
- Software Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library
- Where is the preconditioning of coefficient matrix -A in FGMRES

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

yang__lin

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-04-2019
01:38 AM

61 Views

Where is the preconditioning of coefficient matrix -A in FGMRES

Hello, every one .

I want to implement the ILUT preconditioned FGMRES RCI to solve a large Poisson equation in a lab CFD code which based on non-uniform cartesian grids and standard 7-point discretization scheme . I read the MKL Developer Reference and example : dcsrilut_exampl2.f90 and understand the RCI mechanism , GMRES method and ILU well, but I am still confused about the process of the preconditioned FGMRES method.

According to my understanding , to use ILUT+FGMRES, the user should first generate a CSR matrix for both **A(csrA)** and precondition matrix **B(csrL)** .Next, MKL invokes the preconditioned version of FGMRES by setting **ipar(11)=1 **and then performs an additional matrix(**csrL**)-vector multiplication step (**RCI_request =3**) to precondition the rhs , which probably correspond :** B.inv() * b** in GMRES.

What confuses me is that where is the preconditioning step of coefficients A? Shouldn't there exists a **B.inv() * A **step** **in the (**RCI_request =3**) (Not clear whether right or left precondition is adopted in MKL) ? Actually , I am expecting some code like :

call mkl_sparse_d_spmm(op, B.inv() , csrA , reconditioned_A_CSR)

following the preconditioning of vector TMP(ipar(22)) .

I also notice the** RCI_request =1** performs a set of A*V_i operations with the input of **csrA**, not **csrA** and **csrL**. So, How the preconditioning of A is handled in FGMRES is not clear to me at all.

My guess is that MKL performs the precondition of **A** automatically after precondition of **vector tmp(ipar(22))** ,and then overrides the original A matrix with the same variable name , so that explains why the RCI_request=1 part remain unchanged in precondition version. Can anyone confirm this or explains it for me? Thanks a lot !

Lin Yang

Link Copied

0 Replies

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

For more complete information about compiler optimizations, see our Optimization Notice.