Skip to main content

chronon::sender::config::SimulationYAMLConfig

Top-level YAML simulation config: settings, observation, units, connections. More...

#include <SenderUnitConfig.hpp>

Public Functions

Name
std::vector< std::string >unitNames() const
size_tunitCount() const
TickSimulationConfigtoRuntimeConfig() const
One translation boundary for YAML compatibility names and runtime settings.
boolhasUnit(const std::string & name) const
const UnitConfig *getUnit(const std::string & name) const
Returns nullptr if not found.
size_tconnectionCount() const

Public Attributes

Name
std::unordered_map< std::string, UnitConfig >units
Keyed by instance name (path) used for port resolution.
std::vector< std::string >unit_order
Unit instance names in YAML declaration order.
booltrace_execution
Print execution policy details.
SchedulerTimelineTraceConfigtimeline_trace
uint64_ttick_frequency_hz
Default 1 GHz.
doublesa_critical_path_weight
0 disables the SA critical-path term.
uint64_trun_cycles
0 uses the application default (10 million if unset).
doublerebalance_min_gain
doublerebalance_imbalance_threshold
uint64_trebalance_cooldown_cycles
uint64_trebalance_check_interval_cycles
std::stringpartition_solver
Initial cluster-aware partition solver: "SA" (default) or "Weighted".
std::optional< observe::ObservationYAMLConfig >observation
Builder auto-creates observation contexts when present and enabled.
uint32_tnum_workers
Legacy YAML default; C++ defaults to hardware_concurrency(). Set explicitly for parity.
std::stringname
uint32_tmax_lookahead_cycles
doubleinitial_partition_sync_cost_ns
uint64_tepoch_size
Host predicate and Sequential termination polling interval.
boolenable_weighted_partitioning
Enables cluster-aware partitioning. False keeps the legacy topology-only path.
boolenable_parallel
boolenable_lookahead
Compatibility switch. False forces Sequential; Barrier was removed.
boolenable_epoch_free_lookahead
boolenable_dynamic_rebalance
std::vector< PortConnectionSpec >connections

Detailed Description

struct chronon::sender::config::SimulationYAMLConfig;

Top-level YAML simulation config: settings, observation, units, connections.

Example: ```yaml

simulation: num_workers: 4 execution_policy: auto polling_interval_cycles: 64 unit: fetch: type: FetchUnit params: { max_instructions: 100 } port: { out_instr: { to: decode.in_instr, delay: 1 } }


## Public Functions Documentation

### function unitNames

```cpp
inline std::vector< std::string > unitNames() const

function unitCount

inline size_t unitCount() const

function toRuntimeConfig

inline TickSimulationConfig toRuntimeConfig() const

One translation boundary for YAML compatibility names and runtime settings.

function hasUnit

inline bool hasUnit(
const std::string & name
) const

function getUnit

inline const UnitConfig * getUnit(
const std::string & name
) const

Returns nullptr if not found.

function connectionCount

inline size_t connectionCount() const

Public Attributes Documentation

variable units

std::unordered_map< std::string, UnitConfig > units;

Keyed by instance name (path) used for port resolution.

variable unit_order

std::vector< std::string > unit_order;

Unit instance names in YAML declaration order.

variable trace_execution

bool trace_execution =
TickSimulationConfig{}.trace_execution;

Print execution policy details.

variable timeline_trace

SchedulerTimelineTraceConfig timeline_trace;

variable tick_frequency_hz

uint64_t tick_frequency_hz = TickSimulationConfig{}.tick_frequency_hz;

Default 1 GHz.

variable sa_critical_path_weight

double sa_critical_path_weight =
TickSimulationConfig{}.sa_critical_path_weight;

0 disables the SA critical-path term.

variable run_cycles

uint64_t run_cycles = 0;

0 uses the application default (10 million if unset).

variable rebalance_min_gain

double rebalance_min_gain = TickSimulationConfig{}.rebalance_min_gain;

variable rebalance_imbalance_threshold

double rebalance_imbalance_threshold = TickSimulationConfig{}.rebalance_imbalance_threshold;

variable rebalance_cooldown_cycles

uint64_t rebalance_cooldown_cycles = TickSimulationConfig{}.rebalance_cooldown_cycles;

variable rebalance_check_interval_cycles

uint64_t rebalance_check_interval_cycles =
TickSimulationConfig{}.rebalance_check_interval_cycles;

variable partition_solver

std::string partition_solver = "SA";

Initial cluster-aware partition solver: "SA" (default) or "Weighted".

variable observation

std::optional< observe::ObservationYAMLConfig > observation;

Builder auto-creates observation contexts when present and enabled.

variable num_workers

uint32_t num_workers = 4;

Legacy YAML default; C++ defaults to hardware_concurrency(). Set explicitly for parity.

variable name

std::string name = "simulation";

variable max_lookahead_cycles

uint32_t max_lookahead_cycles = TickSimulationConfig{}.max_lookahead_cycles;

variable initial_partition_sync_cost_ns

double initial_partition_sync_cost_ns =
TickSimulationConfig{}
.initial_partition_sync_cost_ns;

Locality weight for the initial partition; 0 = pure load balance.

variable epoch_size

uint64_t epoch_size = TickSimulationConfig{}.epoch_size;

Host predicate and Sequential termination polling interval.

variable enable_weighted_partitioning

bool enable_weighted_partitioning = TickSimulationConfig{}.enable_weighted_partitioning;

Enables cluster-aware partitioning. False keeps the legacy topology-only path.

variable enable_parallel

bool enable_parallel = TickSimulationConfig{}.enable_parallel;

variable enable_lookahead

bool enable_lookahead = TickSimulationConfig{}.enable_lookahead;

Compatibility switch. False forces Sequential; Barrier was removed.

variable enable_epoch_free_lookahead

bool enable_epoch_free_lookahead = TickSimulationConfig{}.enable_epoch_free_lookahead;

Compatibility switch for epoch-free execution. False forces Sequential; no epoch-boundary fallback remains.

variable enable_dynamic_rebalance

bool enable_dynamic_rebalance = TickSimulationConfig{}.enable_dynamic_rebalance;

variable connections

std::vector< PortConnectionSpec > connections;

Updated on 2026-09-20 at 14:23:39 +0000