timing.h

Note

The documentation on this page was automatically extracted from the DOLFIN C++ code and may need to be edited or expanded.

enum class TimingClear
Parameter specifying whether to clear timing(s):
  • TimingClear::keep
  • TimingClear::clear
enum class TimingType
Timing types:
  • TimingType::wall wall-clock time
  • TimingType::user user (cpu) time
  • TimingType::system system (kernel) time

Precision of wall is around 1 microsecond, user and system are around 10 millisecond (on Linux).

void tic()

Start timing (should not be used internally in DOLFIN!)

double toc()

Return elapsed wall time (should not be used internally in DOLFIN!)

double time()

Return wall time elapsed since some implementation dependent epoch

Table timings(TimingClear clear, std::set<TimingType> type)

Return a summary of timings and tasks in a Table, optionally clearing stored timings

Arguments
clear (TimingClear)
  • TimingClear::clear resets stored timings
  • TimingClear::keep leaves stored timings intact
type (std::set<TimingType>)
subset of { TimingType::wall, TimingType::user, TimingType::system }
Returns
Table
Table with timings
void list_timings(TimingClear clear, std::set<TimingType> type)

List a summary of timings and tasks, optionally clearing stored timings. MPI_AVG reduction is printed. Collective on MPI_COMM_WORLD.

Arguments
clear (TimingClear)
  • TimingClear::clear resets stored timings
  • TimingClear::keep leaves stored timings intact
type (std::set<TimingType>)
subset of { TimingType::wall, TimingType::user, TimingType::system }
void dump_timings_to_xml(std::string filename, TimingClear clear)

Dump a summary of timings and tasks to XML file, optionally clearing stored timings. MPI_MAX, MPI_MIN and MPI_AVG reductions are stored. Collective on MPI_COMM_WORLD.

Arguments
filename (std::string)
output filename; must have .xml suffix; existing file is silently overwritten
clear (TimingClear)
  • TimingClear::clear resets stored timings
  • TimingClear::keep leaves stored timings intact
std::tuple<std::size_t, double, double, double> timing(std::string task, TimingClear clear)

Return timing (count, total wall time, total user time, total system time) for given task, optionally clearing all timings for the task

Arguments
task (std::string)
name of a task
clear (TimingClear)
  • TimingClear::clear resets stored timings
  • TimingClear::keep leaves stored timings intact
Returns
std::tuple<std::size_t, double, double, double>
(count, total wall time, total user time, total system time)