Skip to content

Profiling

This guide documents the Rust-core profiling workflow around the production deterministic kernels. It describes the measured baseline, the JSON artifact contract, and the criteria for deciding when SIMD or accelerator work deserves a follow-on track.

The production benchmark scaffold lives in rust/crates/voiage-numerics/benches/:

  • foundational.rs — deterministic EVPI, ENBS, dominance, and CEAF workloads

Run it locally with:

Terminal window
cargo bench --manifest-path rust/Cargo.toml --locked -p voiage-numerics --bench foundational

The benchmark emits stable operation names and nanosecond timings. Workloads are deterministic and results are checked by the kernels; machine-specific timing is recorded as an artifact rather than treated as a portable absolute threshold.

  1. Run the production numerics benchmark and confirm all kernel results complete successfully.
  2. Record timing, memory, or throughput measurements in the same artifact family.
  3. Compare the new artifact against the committed baseline before promoting an optimization claim.

The Rust workspace owns the scalar and stochastic kernels; profiling comparisons must target the Rust crates and their supported bindings.

SIMD, Rayon, and accelerator work should be promoted only when:

  • the scalar baseline is stable and reproducible
  • the hot path shows a measurable gain
  • the change preserves the same result semantics and tolerance policy
  • the optimization is an internal execution change, not a new public contract