hints wanted for huge eigenvalue problem
hzhang at mcs.anl.gov
Sun Aug 23 21:44:29 CDT 2009
> I want to extract the lowest eigenvalues of a huge generalized eigenvalue
> problem with very dense clusters of eigenvalues.
> I use slepc and superlu as external direct solver with the following options
> -eps_ncv 300 -eps_nev 220 -eps_tol 1e-10
> -st_ksp_rtol 1e-14 -st_ksp_type preonly -st_pc_type lu
> -st_pc_factor_mat_solver_package superlu_dist
> Without shift-and-invert, this simply takes way too long, even on 48 CPUs it
> runs for hours.
> If I use a shift-and-invert technique additionally invoking
> -st_type sinvert -st_shift -0.41,
> it converges very fast and also parallelizes well, but I most likely don't
> get the lowest eigenvalues if st_shift is slightly too high. If it's slightly
> too low, it doesn't seem to converge.
Clustered eigenvalue problems are extremely difficult to solve.
In most cases, the shift-and-invert technique is the only
practical approach, for which the selection of the shift
is also sensitive, as what you observed.
One suggestion is to try larger -eps_ncv, e.g.,
eps_ncv = 2*eps_nev, which might improve the robustness.
> Can anybody give me some hints on how to tweak the options?
> If a 100MB tar ball is not too much for you, the matrix is here:
Are your matrices symmetric/Hermitian?
You may send this request to slepc's developers who are
more experienced than us on eigenvalue problems.
More information about the petsc-users