# Computing only the $k$ biggest eigenvalues and eigenvectors with Scalapack

Given that there are eigensolvers in Scalapack that use a divide and conquer method, is there any way we can use Scalapack functions to only compute the first $k$ dominant eigenvalues and corresponding eigenvectors?

This is for a spectral clustering code.

• (assuming your matrix is sparse/structured and $k$ is small relative to the size of the matrix,) that's exactly what Arnoldi eigenvalue methods (and ARPACK) are useful for. a search on this website should produce a number of useful posts on this topic – GoHokies Feb 14 '17 at 11:41
• Yes , I know about Arnoldi methods , the idea was to do a parallel computation with MPI (hence Scalapack ) – Yacine E.Faris Feb 14 '17 at 12:34
• the authors of ARPACK have written a parallel implementation (on top of BLACS and MPI). you can download it from here – GoHokies Feb 14 '17 at 15:04
• Is your matrix symmetric/Hermitian? If so you might look at pdsyevr or pdsyevx (or equivalents if not using doubles) – Ian Bush Feb 14 '17 at 17:08