Dear All,
I am planning on using slepc to do a large number of eigenvalue
calculations
of a generalized eigenvalue problem, called from a program written in fortran
using MPI.
Thus far I have successfully installed the slepc/PETSc software, both locally
and on a cluster,
and on smaller test problems everything is working well; the matrices are
efficiently and
correctly constructed and slepc returns the correct spectrum. I am just now
starting to move
towards now solving the full-size 'production run' problems, and would
appreciate some
general advice on how to improve the solver's performance.
In particular, I am currently trying to solve the problem Ax = lambda Bx whose
matrices
are of size 50000 (this is the smallest 'production run' problem I will be
tackling), and are
complex, non-Hermitian. In most cases I aim to find the eigenvalues with the
largest real part,
although in other cases I will also be interested in finding the eigenvalues
whose real part
is close to zero.
A)
Calling slepc 's EPS solver with the following options:
-eps_nev 10 -log_view -eps_view -eps_max_it 600 -eps_ncv 140 -eps_tol 5.0e-6
-eps_largest_real -eps_monitor :monitor_output.txt
led to the code successfully running, but failing to find any eigenvalues
within the maximum 600 iterations
(examining the monitor output it did appear to be very slowly approaching
convergence).
B)
On the same problem I have also tried a shift-invert transformation using the
options
-eps_nev 10 -eps_ncv 140 -eps_target 0.0+0.0i -st_type sinvert
-in this case the code crashed at the point it tried to call slepc, so perhaps
I have incorrectly specified these options ?
Does anyone have any suggestions as to how to improve this performance ( or
find out more about the problem) ?
In the case of A) I can see from watching the slepc videos that increasing ncv
may help, but I am wondering , since 600 is a large number of iterations,
whether there
maybe something else going on - e.g. perhaps some alternative preconditioner
may help ?
In the case of B), I guess there must be some mistake in these command line
options?
Again, any advice will be greatly appreciated.
Best wishes, Dan.