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

Passing huge data of matrix to dposv function of MKL

S__MPay
Beginner
410 Views

As you know the dposv is a function that solve A.X = B while the A is a symmetric matrix.

The dposv only needs the upper or lower part of symmetric matrix as it can be observed in this example.

Now I have to solve a 33000x33000 double precision matrix which takes over 8.1 GB of memory.

Can making a 33000x33000 array be avoided so I don't have to pass the zero members?

Is there any alternative solving function that provides that?

I know there are solvers out there that can solve this type of problems very efficiently; Please help me to make most of MKL.

0 Kudos
1 Solution
mecej4
Honored Contributor III
410 Views

If your matrix is banded, you may use DPBSV from Lapack. If the matrix has a more general sparseness pattern, MKL offers you a fine solution: Pardiso, which you may call directly, or through the DSS interface. For details, see the MKL manuals. There are several small example problem source codes that are included in MKL in the examples/solverf and examples/solverc directories.

View solution in original post

0 Kudos
1 Reply
mecej4
Honored Contributor III
411 Views

If your matrix is banded, you may use DPBSV from Lapack. If the matrix has a more general sparseness pattern, MKL offers you a fine solution: Pardiso, which you may call directly, or through the DSS interface. For details, see the MKL manuals. There are several small example problem source codes that are included in MKL in the examples/solverf and examples/solverc directories.

0 Kudos
Reply