[petsc-users] [SLEPc] Best method to compute all eigenvalues of a MatShell

Sreeram R Venkat srvenkat at utexas.edu
Mon May 13 12:40:11 CDT 2024


I have a MatShell object that computes matrix-vector products of a dense
symmetric matrix of size NxN. The MatShell does not actually form the dense
matrix, so it is never in memory/storage. For my application, N ranges from
1e4 to 1e5.

I want to compute the full spectrum of this matrix. For an example with N
~1e4, I was able to use SLEPc's Krylov-Schur solver to get the spectrum in
about 3 hours running on 6 A100 GPUs. There, I had set the MPD to 2000.
Before moving on to larger matrices, I wanted to check whether this is the
best way to go about it. I saw on other posts that for computing full
spectra of dense matrices, it is generally better to go with
LAPACK/SCALAPACK. Is the same true for MatShells of dense matrices? The
matrix-vector products with the shell themselves are really cheap, so I can
form the dense matrix with MatComputeOperator() and store it to later
compute with another solver if needed. If SLEPc is not a bad option, what
is a good way to select MPD/NCV?

I do need the full spectrum here since I am trying to analyze how the
spectral decay changes for different problem configurations.

Thanks for your help,
Sreeram
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20240513/2ce23b25/attachment.html>


More information about the petsc-users mailing list