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
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 = run until completion.
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
std::stringname
uint32_tmax_lookahead_cycles
doubleinitial_partition_sync_cost_ns
Locality weight for the initial partition; 0 = pure load balance.
uint64_tepoch_size
boolenable_weighted_partitioning
Enables cluster-aware partitioning. False keeps the legacy topology-only path.
boolenable_parallel
boolenable_lookahead
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 epoch_size: 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 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 = false;

Print execution policy details.

variable timeline_trace

SchedulerTimelineTraceConfig timeline_trace;

variable tick_frequency_hz

uint64_t tick_frequency_hz = 1'000'000'000;

Default 1 GHz.

variable sa_critical_path_weight

double sa_critical_path_weight = 0.0;

0 disables the SA critical-path term.

variable run_cycles

uint64_t run_cycles = 0;

0 = run until completion.

variable rebalance_min_gain

double rebalance_min_gain = 0.01;

variable rebalance_imbalance_threshold

double rebalance_imbalance_threshold = 1.03;

variable rebalance_cooldown_cycles

uint64_t rebalance_cooldown_cycles = 0;

variable rebalance_check_interval_cycles

uint64_t rebalance_check_interval_cycles = 2048;

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;

variable name

std::string name = "simulation";

variable max_lookahead_cycles

uint32_t max_lookahead_cycles = 100;

variable initial_partition_sync_cost_ns

double initial_partition_sync_cost_ns =
8.0;

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

variable epoch_size

uint64_t epoch_size = 64;

Deprecated compatibility knob for the per-epoch lookahead fallback. Epoch-free lookahead ignores this value.

variable enable_weighted_partitioning

bool enable_weighted_partitioning = true;

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

variable enable_parallel

bool enable_parallel = true;

variable enable_lookahead

bool enable_lookahead = true;

variable enable_epoch_free_lookahead

bool enable_epoch_free_lookahead = true;

Drop the per-epoch barrier when safe. Setting this false selects the deprecated per-epoch fallback, which will be removed in a future release.

variable enable_dynamic_rebalance

bool enable_dynamic_rebalance = true;

variable connections

std::vector< PortConnectionSpec > connections;

Updated on 2026-07-06 at 09:03:33 +0000