assembly_schedule_defaults Namespace Reference#

DiFfRG: DiFfRG::assembly_schedule_defaults Namespace Reference
DiFfRG
Discretization Framework for functional Renormalization Group flows
DiFfRG::assembly_schedule_defaults Namespace Reference

Variables

constexpr double chunk_work_ns = 8.0e3
 
constexpr double worker_work_ns = 64.0e3
 
constexpr uint chunk_cap = 256
 

Variable Documentation

◆ chunk_cap

uint DiFfRG::assembly_schedule_defaults::chunk_cap = 256
inlineconstexpr

Ceiling on chunk_size. queue_length * chunk_size CopyData objects are allocated up front, so an unbounded chunk turns into allocation cost on a mesh that cannot use it.

◆ chunk_work_ns

double DiFfRG::assembly_schedule_defaults::chunk_work_ns = 8.0e3
inlineconstexpr

Work a single chunk should carry for the pipeline hand-off around it to be negligible. ~ 8 us

◆ worker_work_ns

double DiFfRG::assembly_schedule_defaults::worker_work_ns = 64.0e3
inlineconstexpr

Work that has to exist before another pipeline worker pays for itself.

Measured on some cheap loops, where waking workers on a small mesh is a net loss: 128 cells are assembled fastest by a single worker, 512 by two, and only past a few thousand does it pay to use the whole budget. ~ 64 us.