[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Reporting cpu times to profile KSPSolve (and others)
- To: petsc-dev@xxxxxxxxxxx
- Subject: Reporting cpu times to profile KSPSolve (and others)
- From: "Dave May" <dave.mayhem23@xxxxxxxxx>
- Date: Fri, 9 May 2008 13:09:56 +1000
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type; bh=yvgDM2CvvO5jQqMZEcxg9HHCRGeiKWRAEBJxg44n5Pg=; b=IvG5VMq89ccw5qXxIuMht/75+eiPKVbXqUdoNJEfdeMTZnkmDj0naB9gC8RkKdXgqRUNkkqR4ncCfID5oEuJP7sybZICRnejFlteywQ/NKfmOB24/2TS7JyiZ/CLFdL+4mzbMtIPzUZ7kwQxdHV6yNXlHjFxbHQBA/zepMXH6pE=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=m8NcF2gujJVE71RtGEYPZM15bVuO3JvFb0YLXMXxCcLj8fuVFMSKr06FzNYk68NNF4DYREGlOJqUP2yazw4QYcUTmznh3uBzIsc0MAsyjMM3XKHP94/BKvdAo7pt21xRpQ4gpoHUNFnCqB9id2/9SkMz6vDCjELxGIhOmG0VFFE=
- Reply-to: petsc-dev@xxxxxxxxxxx
- Sender: owner-petsc-dev@xxxxxxxxxxx
Hey petsc folk,
What is the best way to obtain timing information to profile the performance
of KSPSolve (or SNESSolve)? Currently I have written some specific KSP monitors,
but it I think it would be useful to have access to this information all the time without
having to go through the monitor. It seems like each object should know how to time
some of its operations.
It would be very useful to have functions such as
KSPGetCPUTime(KSP ksp,PetscLogDouble *time)
to report the total solution time required by the KSPSolve() and
KSPGetCPUTimeHistory(KSP ksp,PetscLogDouble *time[],PetscInt *na)
which is like KSPGetResidualHistory() but returns the accumulated cpu time for each
iterate
It would also be useful to have a default KSP monitor which could report the time per iterate
or accumulate time. For example something like
40 KSP Residual norm 1.519638506430e-01 Time 1.000000000000e-03
41 KSP Residual norm 1.510346481853e-01 Time 1.510346481853e-02
Is there a better approach to what I've been doing and are there plans to add any
additional features to help profile individual operations on each object?
Cheers,
Dave