Days
days.sh
Spec sheet
- Purpose
- Days is an exact discrete-event packet network simulator.Read 11 Oct 2026 · days.sh
- Product
- Days is an exact discrete-event packet network simulator.Read 4 Oct 2026 · days.sh
- Intended users
- The site describes using Days to debug simulations, reproduce regressions across backends, and compare other simulators’ approximations against an exact reference.Read 4 Oct 2026 · days.sh
- License
- The project is licensed under AGPL-3.0-only.Read 11 Oct 2026 · github.com
- Backend limits
- RED, collectives, and compute stages run only on Scalar and CPU; Metal and CUDA reject those scenarios during validation.Read 11 Oct 2026 · days.sh
- Collectives
- It supports ring all-reduce and all-gather over TCP, with delay-only compute stages.Read 4 Oct 2026 · days.sh
- Configuration
- Simulations are configured in a TOML file passed to the command-line program.Read 4 Oct 2026 · days.sh
- Determinism
- Events are ordered by integer-nanosecond time, phase, sending process, and sequence number, with no floating-point arithmetic in the simulation semantics.Read 11 Oct 2026 · days.sh
- Execution
- It provides scalar, multicore CPU, Apple Metal, and NVIDIA CUDA backends that aim to produce byte-identical complete simulation states.Read 11 Oct 2026 · days.sh
- GPU limitation
- RED admission, collectives, and compute stages are supported only on Scalar and CPU; Metal and CUDA reject those scenarios during validation.Read 4 Oct 2026 · days.sh
- GPU requirements
- CUDA builds require a CUDA 13 toolkit, and Metal runs on Apple GPUs except the M1 family.Read 11 Oct 2026 · days.sh
- Installation
- The installation guide instructs users to build Days from source with stable Rust and Cargo.Read 11 Oct 2026 · days.sh
- Maker attribution
- The Days site footer credits Baochun Li.Read 11 Oct 2026 · days.sh
- Network models
- It models fat-tree, torus, dragonfly, and custom graph topologies, along with TCP Reno and CUBIC, rate-paced sources, DCQCN, and CNP.Read 4 Oct 2026 · days.sh
- Outputs
- By default, Days writes periodic CSV reports for source, sink, and switch statistics; additional traces depend on enabled features.Read 11 Oct 2026 · days.sh
- Parallel correctness
- The site describes five Lean-proved theorems about the executor’s scheduling model and says backend conformance is checked against the serial result.Read 4 Oct 2026 · days.sh
- Parallel execution
- The site says five Lean theorems establish that parallel execution reaches the same complete state as canonical serial execution.Read 11 Oct 2026 · days.sh
- Programming model
- Network elements operate as isolated sequential processes with private state and communicate through timestamped messages.Read 11 Oct 2026 · days.sh
- Supported models
- Days models fat-tree, torus, and dragonfly topologies, TCP Reno and CUBIC, DCQCN, PFC, several queue disciplines, and ring all-reduce and all-gather collectives.Read 11 Oct 2026 · days.sh
- Switch features
- Supported switch mechanisms include FIFO, strict priority, DRR, WRR, exact-rational WFQ, TailDrop, ECN thresholds, RED, RED with ECN, and PFC.Read 4 Oct 2026 · days.sh
- Usage
- Days runs from the command line with a TOML configuration file and includes runnable example configurations.Read 11 Oct 2026 · days.sh
Where Specifiction places it
- Network Simulation Software#19 of 317.5