I am working on Fermion and Boson Hubbard Models, in which the dimension of Hilbert Spaces are quite large (~50k). Because the Hamiltonian matrix is ~50k X ~50k, to diagonalize these big sparse matrices I am using DSYEV(LAPACK SUBROUTINE) which takes quite good amount of time(8hrs on Xeon Hp workstation Z400 16 GB RAM) for calculation eigenvalues as well as eigenfunctions. I am interested to reduce time to diagonalizing matrix with available processing power only; so any suggestion is welcome. Also, if I use Lanczos method, will this reduce the computation time?


1 Answer 1


If you are trying to calculate all 50k eigenvalues of these matrices, that is going to take you a "quite good amount of time" no matter which algorithm you choose. I'm doubtful you can do substantially better than LAPACK.

Lanczos (or generally Arnoldi) algorithms are particularly good at calculating a hand full of eigenvalues at either end of the spectrum (either lowest or highest). A robust implementation with a sophisticated shifting strategy is required to efficiently calculate a large number of eigenvalues in the spectrum without missing any.

ARPACK is generally considered a state-of-the-art Lanczos/Arnoldi eigensolver: http://www.caam.rice.edu/software/ARPACK/

From the ARPACK main web page:

"ARPACK software is capable of solving large scale symmetric, nonsymmetric, and generalized eigenproblems from significant application areas. The software is designed to compute a few (k) eigenvalues with user specified features such as those of largest real part or largest magnitude."

  • $\begingroup$ will you please share some links regarding how to use arpack... $\endgroup$
    – mpk
    Oct 18, 2013 at 12:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.