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

pardiso multiple right hand side with sparse matrix


Hi All,

Pardiso can handle multiple right side, AX=B, meaning B is a matrix. Every column of B is a right hand side. If B is very sparse, is there any way to exploit this feature, instead of storing B as a full matrix? Thank you!

0 Kudos
1 Reply
Black Belt

Here is an untested suggestion:

Store B using CSC storage. After the factorization of A has been performed, do the forward and backward substitutions on one column of B at a time: for each column of B, (i)  unpack into a full vector using ?sctr (ii) call pardiso to obtain the corresponding column of X by forward and backward substitution, (iii) pack the result just found into the proper column of X using ?gthr.

A simpler alternative is not to store B at all, but compute each column of B just when it is needed, solve for the corresponding column of X, and store X in any way suitable in memory or on disk.

0 Kudos