[petsc-users] [SLEPc] Krylov Schur- saving krylov subspace

Jose E. Roman jroman at dsic.upv.es
Fri Aug 21 05:42:47 CDT 2020


Why is your problem taking so long? Are you running in parallel? Is your computation doing a factorization of a matrix? Are you getting slow convergence? How many eigenvalues are you computing? Note that Krylov-Schur is not intended for computing a large percentage of eigenvalues, if you do so then you might get large overheads unless you tune the EPSSetDimensions() parameters (mpd).

EPSSetInitialSpace() is intended to provide an initial guess, which in Krylov-Schur is a single vector, so in this case you would not pass the Krylov subspace from a previous run.

A possible scheme for restarting is to save the eigenvectors computed so far, then pass them in the next run via EPSSetDeflationSpace() to avoid recomputing them. You can use a custom stopping criterion as in https://slepc.upv.es/documentation/current/src/eps/tutorials/ex29.c.html to stop before the job is killed, then save the converged eigenvectors (or EPSGetInvariantSubspace() if the problem is nonsymmetric).

Jose


> El 21 ago 2020, a las 11:56, ROLANDI Laura victoria <Laura-victoria.ROLANDI at isae-supaero.fr> escribió:
> 
> Dear SLEPc developers,
> 
> I'm using the Krylov Schur EPS and I have a question regarding a command.
> 
> Is there a way for having access and saving the krylov subspace during the EPSSolve call?
> 
> I inizialize the solver using the function EPSSetInitialSpace(eps,1, v0), where v0 is a specific vector, but after 24 hours of calculation my job has to end even if the EPSSolve hasn't finished yet.
> Which function should I use for saving the computed Krylov subspace and its dimention n during the process, in order to restart the calculation from it by using EPSsetInitialSpace(eps,n, Krylov-Subspace)?
> 
> Thank you very much,
> Victoria



More information about the petsc-users mailing list