Orrery
A GPU-accelerated N-body gravitational simulator
Loading...
Searching...
No Matches
orrery::backend::ExecutorStatistics Struct Reference

The whole pool's record. More...

#include <orrery/backend/worker_statistics.hpp>

Public Member Functions

Duration busy () const noexcept
 Busy time summed over workers.
Duration idle () const noexcept
 Idle time summed over workers.
double idle_fraction () const noexcept
 The fraction of available worker time that was spent waiting.

Public Attributes

std::vector< WorkerStatisticsworkers
 One entry per worker, in worker order.
Duration elapsed {}
 Wall time spent inside parallel regions, measured by the submitting thread.
std::uint64_t regions {}
 How many parallel regions have run.

Detailed Description

The whole pool's record.

Member Function Documentation

◆ idle_fraction()

double orrery::backend::ExecutorStatistics::idle_fraction ( ) const
inlinenodiscardnoexcept

The fraction of available worker time that was spent waiting.

Zero when nothing has run, which is a truthful answer to the question rather than a division by zero. This is the headline number for the static against dynamic comparison: it is what a perfectly balanced scheduler drives towards zero, and what an unbalanced one cannot.

Member Data Documentation

◆ elapsed

Duration orrery::backend::ExecutorStatistics::elapsed {}

Wall time spent inside parallel regions, measured by the submitting thread.

This is the denominator a speedup is formed against.


The documentation for this struct was generated from the following file: