Quickstart
Run one scenario on the Days AGO Scalar, CPU, Metal, and CUDA engines.
Scope: Days AGO. Run commands from the repository root. Every run below uses the small TCP smoke fixture configs/benchmarks/tcp/fattree_k4_tcp_cubic_f16_smoke.toml.
Scalar
The Scalar engine is the reference oracle: one thread, one global event calendar in canonical order.
cargo run --release --bin days -- --engine scalar \
configs/benchmarks/tcp/fattree_k4_tcp_cubic_f16_smoke.tomlIt prints a record=days_scalar line with the stop time, pending events, processed event count, and packet and byte counters, then a record=days_result line with the complete-state byte length and its FNV-1a-64 fingerprint. For this fixture the result line reports result_bytes=101690 result_fnv1a64=d7de73ee33579682.
CPU
The CPU engine runs safe-horizon rounds on a worker pool. Each logical process (LP) is owned by one worker for the whole run. Each round drains active LPs below an exclusive safe horizon, exchanges remote events at a barrier, and merges them in canonical order for the next round.
cargo run --release --bin days -- --engine cpu --workers 2 \
configs/benchmarks/tcp/fattree_k4_tcp_cubic_f16_smoke.toml--workers is required. The engine prints a record=days_cpu line with round, event, and worker-pool counters, then a record=days_result line whose fingerprint matches the Scalar run.
Metal and CUDA
Device engines need their Cargo feature. On Apple Metal:
cargo run --release --features metal --bin days -- --engine metal \
configs/benchmarks/tcp/fattree_k4_tcp_cubic_f16_smoke.tomlOn an NVIDIA host with a CUDA 13 toolkit, use --features cuda and --engine cuda. Asking for a device engine in a build without its feature is an error that names the missing feature; days never picks a device for you.
A device run prints record=days_protocol (the run configuration), record=days_device (rounds, transitions, and capacity retries), and record=days_result. Its fingerprint must equal the Scalar run's; on Metal it reports the same result_bytes=101690 result_fnv1a64=d7de73ee33579682.
Rejected mechanisms
Metal and CUDA reject images containing RED, collective stages, or compute stages before execution. The error names the backend and recommends Scalar or CPU:
backend Metal does not support RED admission; use Scalar or CpuThis is a capability rejection, not a silent fallback. See the days CLI reference for every option and record field.
Legacy Days
To run the frozen actor-model simulator instead, see Legacy Days.