SLEPc
SLEPc is a software library for the parallel computation of eigenvalues and eigenvectors of large, sparse matrices. It can be seen as a module of PETSc that provides solvers for different types of eigenproblems, including linear (standard and generalized) and nonlinear (quadratic, polynomial and general), as well as the SVD. Recent versions also include support for matrix functions. It uses the MPI standard for parallelization. Both real and complex arithmetic are supported, with single, double and quadruple precision. When using SLEPc, the application programmer can use any of the PETSc's data structures and solvers. Other PETSc features are  incorporated into SLEPc as well, such as command-line option setting, automatic profiling, error checking, portability to virtually all computing platforms, etc. Components. EPS provides iterative algorithms for linear eigenvalue problems. ST encapsulates spectral transformations and other preconditioners for eigenvalue problems. SVD contains solvers for the singular value decomposition as well as the generalized singular value decomposition. PEP is intended for polynomial eigenproblems, including the quadratic eigenvalue problem. NEP provides functionality for the solution of the nonlinear eigenproblem. MFN can be used to compute the action of a matrix function on a vector.