Timing Warp

There are a variety of built in tools for timing Warp simulations. Basic timings are always saved and can be accessed. This will print out some of the timings:

printtimers()

The timings of installed functions is also always saved. This will print out this data:

printtimers(icontrollers=2)

For some of the main physics packages, timings for the Fortran subroutines can be turned on.

top.ltoptimesubs = true

w3d.lw3dtimesubs = true

f3d.lf3dtimesubs = true

With these flags set, printtimers will printout the timings of major Fortran subroutines. This can be a lot of data to examine - the option mintime argument is useful, showing only subroutines that have times greater than mintime.

For timing python level routines, Forthon provides a detailed timing and profiling package, ForthonTimer.

from Forthon.ForthonTimer import ForthonProfiler

ppp = ForthonProfiler()

At the end of the section being timed, the following will print out the time (and call level) of the python routines accessed:

ppp.out(maxlevel=3,mintime=1.)

maxlevel specifies the call depth to list and mintime the minimum run time above which routines are listed. Note that this output can be voluminous.