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
- Incomplete LU Factorization - how to extract L and U ?

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

sps4

Beginner

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

01-15-2012
12:33 PM

91 Views

Incomplete LU Factorization - how to extract L and U ?

I'd like to use the ilu0 factorization as a preconditioner for a GPU based solver. In order to do so I have to explicitly get the L and the U matrix from the B matrix that is returned by dcsrilu0.

Can you think of a simple way to do this or is there even a tool in the MKL for this?

Thanks in advance!

Cheers,

Stefan

Link Copied

3 Replies

Alexander_K_Intel2

Employee

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

01-15-2012
07:58 PM

91 Views

In example nameddcsrilu0_exampl1.c you can find way how to use matrix obtained by ILU0 as preconditioner. There is no way to get the L and U matrix from matrix B but you can multiply them on vector using SparseBlas functionality.

With best regards,

Alexander Kalinkin

sps4

Beginner

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

01-16-2012
03:03 AM

91 Views

thank you very much for your very fast answer. I have to extract L and U as I'm using a GPU based backsolve method (not the MKL mkl_cspblas_dcsrtrsv).

There have to be a way to do this. Maybe I can perform a matrix-matrix multiplication with the identity matrix, but use only the lower or upper part in the multiplication? For that I need to routines:

1. Initilialize a sparse identitiy matrix. Is that possible with MKL?

2. Perform a matrix-matrix multiplication, but only use the L or U part (like mkl_cspblas_dcsrtrsv does it). Is there a suitable routine in the MKL?

Thanks in advance!

Cheers,

Stefan

Alexander_K_Intel2

Employee

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

01-17-2012
07:49 PM

91 Views

Hi,

From my point of view you can malloc 2 set of 3 arrays (ia,ja, a) for matrices L and U correspondently and convert data from matrix B to these matrices using simple loop. Lower part of matrix B correspond to matrix L and upper correspond to matrix U.

With best regards,

Alexander Kalinkin

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