Make TimerReport output average/min/max timings to stdout, instead of timings from the root process

Create issue
Issue #363 closed
Erik Schnetter created an issue

The n_top_timers feature of TimerReport outputs timings from the root process only to stdout, greatly confusing people. It should instead output average (or min/max) timings over all processes.

One common problem is a routine that contains communication, and which thus has to wait until all processes arrive there. If previous routines show a load imbalance, then outputting timings only from the root process make this routine look very slow, although this routine really only has to wait for other processes finish their previous calculations. Since this is a common case, it makes the current timing output useless for all routines involving communication.


Comments (6)

  1. Ian Hinder
    • removed comment

    This is addressed in the "timertree" patch series for the mercurial version. The timer tree is printed to stdout in the same way as the n_top_timers, and it shows the min and max across all processes. The only thing holding this up is a lack of time to finish it off and merge it.

  2. Ian Hinder
    • removed comment

    I suggest replacing the existing "top timers" code with this rather than adding a new function and parameters. Nobody should be using the old version if the new version is available.

  3. Log in to comment