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_t | unitCount() const |
| bool | hasUnit(const std::string & name) const |
| const UnitConfig * | getUnit(const std::string & name) const Returns nullptr if not found. |
| size_t | connectionCount() 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. |
| bool | trace_execution Print execution policy details. |
| SchedulerTimelineTraceConfig | timeline_trace |
| uint64_t | tick_frequency_hz Default 1 GHz. |
| double | sa_critical_path_weight 0 disables the SA critical-path term. |
| uint64_t | run_cycles 0 = run until completion. |
| double | rebalance_min_gain |
| double | rebalance_imbalance_threshold |
| uint64_t | rebalance_cooldown_cycles |
| uint64_t | rebalance_check_interval_cycles |
| std::string | partition_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_t | num_workers |
| std::string | name |
| uint32_t | max_lookahead_cycles |
| double | initial_partition_sync_cost_ns Locality weight for the initial partition; 0 = pure load balance. |
| uint64_t | epoch_size |
| bool | enable_weighted_partitioning Enables cluster-aware partitioning. False keeps the legacy topology-only path. |
| bool | enable_parallel |
| bool | enable_lookahead |
| bool | enable_epoch_free_lookahead |
| bool | enable_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