Re: interpretation of timing data in output

From: Jim Phillips (
Date: Wed Jul 20 2011 - 11:47:04 CDT

On Fri, 24 Jun 2011, Hannes Loeffler wrote:

> Hi,
> I would like to ask how to interpret the various timings written to
> stdout. For example what to the timings reading the PSF and PDB files
> include? Is this only I/O or does it also include the time of parsing,
> storing data, etc.? I ask this because those times are considerable
> higher for one of our machines and I would like to get an idea why that
> is.

Looking at CollectionMaster::disposePositions() the output timing includes
only the file writing stage, but different filesystems provide different
levels of data integrity. The data may simply be handed over the the OS
or fileserver and cached in memory, written to a cache on the disk, or
guaranteed written physically to the disk.

> Also, what is included or excluded in the outputTiming? Is the initial
> startup, I/O, any other serial time excluded? The manual mentions that
> the data is for CPU 0 only.

Based on Controller::printTiming() startup time is excluded from the
TIMING lines on stdout. The wall time should be reliable, but the CPU
time is whatever Charm++ reports for that particular platform. The output
at the of the run, however, does include startup time. For benchmarking
you should ignore startup and initial load balancing and look at the
"Benchmark time:" lines or the TIMING outputs near the end of a run.

> What does the memory output mean? It seems to be independent of the
> number of cores.

It's an estimate of the memory used by the master process (which may
containt multiple threads). The problem with "memory used" on some
platforms the best estimate available is the allocated virtual memory,
even if much of it is virtual address space that is never touched. This
is implemented in memusage.C.

> Thanks,
> Hannes.

This archive was generated by hypermail 2.1.6 : Wed Feb 29 2012 - 15:57:29 CST