Wildmeshing Toolkit
Loading...
Searching...
No Matches
Public Attributes | List of all members
wmtk::ExecutePass< AppMesh >::PassStats Struct Reference

What the last pass cost in contention, as opposed to in work. More...

#include <ExecutionScheduler.hpp>

Public Attributes

size_t lock_failures = 0
 
size_t overflowed = 0
 Operations that exhausted max_retry_limit and were pushed to the post-barrier queue.
 
size_t final_queue_size = 0
 Size of that queue once every task had finished.
 
double parallel_seconds = 0.
 
double serial_tail_seconds = 0.
 
double busiest_task_seconds = 0.
 
double idlest_task_seconds = 0.
 

Detailed Description

template<class AppMesh>
struct wmtk::ExecutePass< AppMesh >::PassStats

What the last pass cost in contention, as opposed to in work.

Populated by every operator() call, so under run_localized_to_convergence it describes the most recent round only. Zeroed at the start of each pass.

Member Data Documentation

◆ busiest_task_seconds

template<class AppMesh >
double wmtk::ExecutePass< AppMesh >::PassStats::busiest_task_seconds = 0.

Busy time of the longest- and shortest-running task. A wide gap means the partition split the work unevenly, and since tasks never steal, the tail is one thread.

◆ lock_failures

template<class AppMesh >
size_t wmtk::ExecutePass< AppMesh >::PassStats::lock_failures = 0

Operations that could not claim their ring and were requeued. Counts attempts, so one stubborn operation can contribute up to max_retry_limit.

◆ parallel_seconds

template<class AppMesh >
double wmtk::ExecutePass< AppMesh >::PassStats::parallel_seconds = 0.

Wall time inside the parallel region, and in the serial drain that follows it. The pass is billed as "parallel" in the driver's log line, but it is the sum of these.


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