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

Eigen Solver for Sparse Matrices

Alemdar__Bulent
Beginner
508 Views
Hi
I am looking for an Eigen solver that directly works on sparse matrices. Particularly, I am looking for Eigen solver that finds not all Eigen vectors\periods but rather finds ones with lowest frequencies (so it does not need to solve for all Eigen vectors, but rather a pre-determined number of Eigen vectors).

I have my problem in this form: Kz = lambda * Mz, where K is symmetric positive definite matrix (sparse stiffness matrix) and M is either diagonal or sparse mass matrix.

As far as I know, there is not a direct solution currently exist in MKL, but I thought someone gives me some advise or direct me other references (curretly I implemented a sub-space iteration solution where I use PARDISO for matrix inversions)

Regards
Bulent
0 Kudos
3 Replies
jaewonj
Novice
508 Views
Quoting - bulent
Hi
I am looking for an Eigen solver that directly works on sparse matrices. Particularly, I am looking for Eigen solver that finds not all Eigen vectorsperiods but rather finds ones with lowest frequencies (so it does not need to solve for all Eigen vectors, but rather a pre-determined number of Eigen vectors).

I have my problem in this form: Kz = lambda * Mz, where K is symmetric positive definite matrix (sparse stiffness matrix) and M is either diagonal or sparse mass matrix.

As far as I know, there is not a direct solution currently exist in MKL, but I thought someone gives me some advise or direct me other references (curretly I implemented a sub-space iteration solution where I use PARDISO for matrix inversions)

Regards
Bulent

If your sparse matrices are tridiagonal, I think you canstill use Lapack because it's very cheap to compute all eigen pairs. Otherwise, you may want to use ARPACK or PETSc which support iterative algorithms.

0 Kudos
Alemdar__Bulent
Beginner
508 Views
Quoting - jaewonj

If your sparse matrices are tridiagonal, I think you canstill use Lapack because it's very cheap to compute all eigen pairs. Otherwise, you may want to use ARPACK or PETSc which support iterative algorithms.


thanks for the reply. I checked out ARPACK, and it seems that it is the right answer to what I need. I also use Mathematica v7.0, and recently solved one of my examples and I found out that Mathematica also uses ARPACK to solve large sparse Eigen system.

It is unfortunate that MKL does not include ARPACK. It is really a tedious process to set up ARPACK (and other dependent libraries) running on a Windows XP or Vista.
bulent
0 Kudos
crispybits
Beginner
508 Views
Somebody's compiled ARPACK for windows here


It depends on the LAPACK and maybe BLAS dlls so you need to get them too.

I've used ARPACK with MKL PARDISO and yes it's very tedious, but can be worth it!



Quoting - bulent

thanks for the reply. I checked out ARPACK, and it seems that it is the right answer to what I need. I also use Mathematica v7.0, and recently solved one of my examples and I found out that Mathematica also uses ARPACK to solve large sparse Eigen system.

It is unfortunate that MKL does not include ARPACK. It is really a tedious process to set up ARPACK (and other dependent libraries) running on a Windows XP or Vista.
bulent

0 Kudos
Reply