[petsc-dev] General Advice for Solving SVD and Eigenvalue problems using SLEPc

Chris Eldred chris.eldred at gmail.com
Wed Nov 6 18:56:11 CST 2013

Dear PETSc-Dev,

I am trying to solve some eigenvalue and singular value decomposition
problems using SLEPc and I wanted to get a little advice on how to

My problems are moderate sized (maximum size of ~30K X 30K for
eigenvalues; and ~10K x 10K for SVD) and quite sparse (<7 non-zero
entries per row, independent of size). However, I need the FULL
eigenspectrum (eigenvalues and eigenvectors), which as I understand
requires that a dense 30K x 30K matrix end up being generated. There
are many repeated eigenvalues in the full spectrum, if that is of use.
It also of type EPS_NHEP (ie non-Hermitian standard eigenvalue
problem). For the SVD I am only interested in the null space of the
matrix (so the "zero" singular values and their associated vectors).

I am running into numerical stability issues when the matrices get
larger than ~250x250 for the eigenvalue problems; and ~400x400 for the
SVD problems. I am currently using the SVDLANCZOS solver for SVD
problem; and the EPSKRYLOVSCHUR solver (since I need the whole
spectrum) for the eigenvalue problem.

1) Are there other algorithms I can try that might be more stable?
2) Any other suggestions for improving numerical stability?
3) Is it worthwhile to use a non-sparse (dense) solver library
(something like Elemental?) since I need to construct the entire
eigenspace anyways?

I am happy to provide more details, specific examples of instability,
etc. if necessary.

Chris Eldred

Chris Eldred
DOE Computational Science Graduate Fellow
Graduate Student, Atmospheric Science, Colorado State University
B.S. Applied Computational Physics, Carnegie Mellon University, 2009
chris.eldred at gmail.com / celdred at atmos.colostate.edu

More information about the petsc-dev mailing list