Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
For the latest information on Intel’s response to the Log4j/Log4Shell vulnerability, please see Intel-SA-00646
6466 Discussions

## Using LU to calculate partial inversion of sparse matrice

Beginner
113 Views
Is there a way to have a direct access to LU factorization of a sparse matrix?
I have a highly sparse matrice and I need to invert them, but I need only somes values.
Complete inversion of a matrix take very long time to perform, but partial inversion is very very fast (in theory, same time than factorization of matrix).
I used this publication ( https://hpcrd.lbl.gov/~linlin/publications/diagex.pdf) to writea small program to be able to invert only some value of my sparse matrix, but to do that, I need to have access to LU factorization.
Thanks you
Marc
2 Replies
Employee
113 Views

Hello Marc,

here is some comment from the expert, wouldthat be helpful to solve the problem:
PARDISO now supports sparse RHS and solution vectors (iparm(31)). Using this switch it might be possible to get a block of an inverse matrix faster than a complete inverse matrix. The idea is the same as mentioned below we solve a system AX=B. If B is an identity matrix, then X=inverse(A). If the customer wants to have partial inverse, she should use sub-matrix of an identity matrix and indicate that only partial solution is needed through iparm(31) and proper perm settings as described in MKL Manual.

Thanks,
Chao

Beginner
113 Views
I need values of inversion in each line of my matrix. Idealy, I need inverse value of all non-zero values of my original matrix.
So, using permutation vector will not be faster.
The better and fastest way to calculate partial inversion is algorithm described earlier. But to do that, we need to have access to L and U.
I know that UMFpack solver gives access to L et U after factorization.
I think one interesting solution would be to give access to the L and U after the factorization like in UMFPack.
Another solution would be to implement the algorithm described earlier in Intel PARDISO.
Thanks
Marc