Hey petsc folk,<br>    What is the best way to obtain timing information to profile the performance <br>of KSPSolve (or SNESSolve)? Currently I have written some specific KSP monitors, <br>but it I think it would be useful to have access to this information all the time without<br>
having to go through the monitor. It seems like each object should know how to time <br>some of its operations.<br><br>It would be very useful to have functions such as <br>  KSPGetCPUTime(KSP ksp,PetscLogDouble *time)<br>
to report the total solution time required by the KSPSolve() and<br>  KSPGetCPUTimeHistory(KSP ksp,PetscLogDouble *time[],PetscInt *na)<br>which is like KSPGetResidualHistory() but returns the accumulated cpu time for each<br>
iterate<br><br>It would also be useful to have a default KSP monitor which could report the time per iterate <br>or accumulate time. For example something like<br>  40 KSP Residual norm 1.519638506430e-01 Time 1.000000000000e-03<br>
  41 KSP Residual norm 1.510346481853e-01 Time 1.510346481853e-02<br><br>Is there a better approach to what I've been doing and are there plans to add any<br>additional features to help profile individual operations on each object?<br>
<br>Cheers,<br>    Dave<br><br><br><br>