On Fri, Mar 4, 2022 at 2:07 PM Varun Hiremath <[email protected]> wrote:
> Hi All, > > We use SLEPc to compute eigenvalues of big problems which typically takes > a long time. We want to add a progress bar to inform the user of the > estimated time remaining to finish the computation. In addition, we also > want to add an option for the user to abort the computation midway if > needed. > > To some extent, I am able to do these by attaching a custom function to > EPSSetStoppingTestFunction > <https://slepc.upv.es/documentation/current/docs/manualpages/EPS/EPSSetStoppingTestFunction.html#EPSSetStoppingTestFunction> > and > using nconv/nev as an indication of progress, and throwing an exception > when the user decides to abort the computation. However, since this > function gets called only once every iteration, for very big problems it > takes a long time for the program to respond. I was wondering if there is > any other function to which I can attach, which gets called more frequently > and can provide more fine-grained information on the progress. > I believe (Jose can correct me) that the bulk of the time in an iterate would be in the linear solve. You can insert something into a KSPMonitor. If you know the convergence tolerance and assume a linear convergence rate I guess you could estimate the "amount done". Thanks, Matt > Thanks, > Varun > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
