Re: [petsc-users] SLEPc solve: progress info and abort option

2022-03-04 Thread Jose E. Roman
Yes, assuming that the eigensolver is calling KSPSolve(), you can set a monitor 
with KSPMonitorSet(). This will be called more often than the callback for 
EPSSetStoppingTestFunction(). 

Jose

> El 4 mar 2022, a las 20:16, Matthew Knepley  escribió:
> 
> 
> On Fri, Mar 4, 2022 at 2:07 PM Varun Hiremath  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 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/



Re: [petsc-users] SLEPc solve: progress info and abort option

2022-03-04 Thread Matthew Knepley
On Fri, Mar 4, 2022 at 2:07 PM Varun Hiremath 
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
> 
>  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/ 


[petsc-users] SLEPc solve: progress info and abort option

2022-03-04 Thread Varun Hiremath
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

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.

Thanks,
Varun


[petsc-users] petsc-3.16.5 now available

2022-03-04 Thread Satish Balay via petsc-users
Dear PETSc users,

The patch release petsc-3.16.5 is now available for download.

https://petsc.org/release/download/

Satish