Community
cancel
Showing results for 
Search instead for 
Did you mean: 
efnacy
New Contributor I
276 Views

Which MKL routines to use to efficiently diagonalize large, sparse, and hermitian/symmetric matrices?

I am trying to diagonalize a large sparse and hermitian matrix, but I can probably afford to make it real symmetric. This matrix is large, it can be 10^6 x 10^6. But I am only interested in a few of its lowest eigenvalues, probably just around 50 of them. I heard that several ways to do this is to use Lanczos or conjugate-gradient method. Are there routines in MKL I can use to employ one or both of the aforementioned methods?

0 Kudos
4 Replies
Spencer_P_Intel
Employee
276 Views

Hi,

Starting in MKL 2019 release, a new functionality called the Extremal Eigenvalue solvers was introduced for finding a certain number of smallest or largest eigenvalues of a sparse matrix.  See MKL Support for Smallest/Largest Eigenvalues for a short article describing what it does and MKL Documentation for Extremal Eigenvalues for the APIs themselves and more details.

Essentially, we have two algorithms available: the Krylov-Schur (similar to Lanczos) method and a subspace projection method that utilizes the FEAST eigensolver technology.

Gennady_F_Intel
Moderator
276 Views

An additionally, you may take a look at the existing examples (dexample_extremal_ev_c.c dexample_extremal_gv_c.c dexample_extremal_svd_c.c ) shows how to properly call these API. You may check these examples into mklroot\examples\solvers_eec\source\ directory

 

efnacy
New Contributor I
276 Views

The intel version installed in the cluster I am working on is still 2018 version, are there other routines in this version? Eigenproblem of a large, sparse matrix is nothing recent, I am imagining library developers of some prominent vendors would have had such solvers for quite a while now.

Gennady_F_Intel
Moderator
276 Views

These API were introduced since MKL v.2019.
Reply