Skip to content

Make Determinism a Runtime Option#104

Open
uulm-janbaudisch wants to merge 1 commit into
mainfrom
deterministic-flag
Open

Make Determinism a Runtime Option#104
uulm-janbaudisch wants to merge 1 commit into
mainfrom
deterministic-flag

Conversation

@uulm-janbaudisch
Copy link
Copy Markdown
Collaborator

@uulm-janbaudisch uulm-janbaudisch commented May 27, 2026

Introduces Rust and CLI APIs to enable determinism and set a seed. Uses the same kind of RNG for both scenarios, SmallRng. This is not cryptographically safe but smaller and faster.

Closes #94

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 27, 2026

🐰 Bencher Report

Branchdeterministic-flag
Testbedx86_64-linux
Click to view all benchmark results
BenchmarkLatencyBenchmark Result
microseconds (µs)
(Result Δ%)
Upper Boundary
microseconds (µs)
(Limit %)
load auto1 (d4)📈 view plot
🚷 view threshold
41,188.00 µs
(-1.75%)Baseline: 41,919.79 µs
43,983.08 µs
(93.65%)
load auto2 (c2d)📈 view plot
🚷 view threshold
553,410.00 µs
(-1.38%)Baseline: 561,181.43 µs
592,686.68 µs
(93.37%)
load busybox (c2d)📈 view plot
🚷 view threshold
1,572.60 µs
(-1.92%)Baseline: 1,603.36 µs
1,665.90 µs
(94.40%)
load small (c2d)📈 view plot
🚷 view threshold
8.60 µs
(-1.68%)Baseline: 8.74 µs
10.35 µs
(83.01%)
t-wise busybox (c2d) t=2📈 view plot
🚷 view threshold
840,500.00 µs
(+0.18%)Baseline: 838,961.25 µs
920,021.60 µs
(91.36%)
t-wise small (c2d) t=2📈 view plot
🚷 view threshold
13.27 µs
(-1.93%)Baseline: 13.54 µs
14.81 µs
(89.65%)
t-wise small (c2d) t=3📈 view plot
🚷 view threshold
13.26 µs
(-4.66%)Baseline: 13.91 µs
14.87 µs
(89.18%)
🐰 View full continuous benchmarking report in Bencher

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 27, 2026

🐰 Bencher Report

Branchdeterministic-flag
Testbedx86_64-darwin
Click to view all benchmark results
BenchmarkLatencyBenchmark Result
microseconds (µs)
(Result Δ%)
Upper Boundary
microseconds (µs)
(Limit %)
load auto1 (d4)📈 view plot
🚷 view threshold
72,323.00 µs
(+19.70%)Baseline: 60,418.79 µs
78,757.58 µs
(91.83%)
load auto2 (c2d)📈 view plot
🚷 view threshold
1,014,600.00 µs
(+13.74%)Baseline: 891,997.14 µs
1,130,986.69 µs
(89.71%)
load busybox (c2d)📈 view plot
🚷 view threshold
2,811.00 µs
(+16.70%)Baseline: 2,408.66 µs
2,906.00 µs
(96.73%)
load small (c2d)📈 view plot
🚷 view threshold
30.72 µs
(+26.05%)Baseline: 24.37 µs
31.21 µs
(98.44%)
t-wise busybox (c2d) t=2📈 view plot
🚷 view threshold
1,186,500.00 µs
(+9.70%)Baseline: 1,081,587.50 µs
1,362,214.60 µs
(87.10%)
t-wise small (c2d) t=2📈 view plot
🚷 view threshold
30.92 µs
(+9.58%)Baseline: 28.21 µs
36.61 µs
(84.45%)
t-wise small (c2d) t=3📈 view plot
🚷 view threshold
32.78 µs
(+11.29%)Baseline: 29.46 µs
37.76 µs
(86.82%)
🐰 View full continuous benchmarking report in Bencher

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 29, 2026

🐰 Bencher Report

Branchdeterministic-flag
Testbedaarch64-linux

🚨 1 Alert

BenchmarkMeasure
Units
ViewBenchmark Result
(Result Δ%)
Upper Boundary
(Limit %)
load auto1 (d4)Latency
milliseconds (ms)
📈 plot
🚷 threshold
🚨 alert (🔔)
40.95 ms
(+3.50%)Baseline: 39.56 ms
40.56 ms
(100.95%)

Click to view all benchmark results
BenchmarkLatencyBenchmark Result
microseconds (µs)
(Result Δ%)
Upper Boundary
microseconds (µs)
(Limit %)
load auto1 (d4)📈 view plot
🚷 view threshold
🚨 view alert (🔔)
40,947.00 µs
(+3.50%)Baseline: 39,561.57 µs
40,560.26 µs
(100.95%)

load auto2 (c2d)📈 view plot
🚷 view threshold
560,860.00 µs
(+4.38%)Baseline: 537,334.29 µs
565,344.31 µs
(99.21%)
load busybox (c2d)📈 view plot
🚷 view threshold
1,420.50 µs
(-1.03%)Baseline: 1,435.32 µs
1,457.89 µs
(97.44%)
load small (c2d)📈 view plot
🚷 view threshold
5.72 µs
(-1.18%)Baseline: 5.79 µs
5.91 µs
(96.88%)
t-wise busybox (c2d) t=2📈 view plot
🚷 view threshold
1,001,900.00 µs
(+16.69%)Baseline: 858,578.75 µs
1,003,418.13 µs
(99.85%)
t-wise small (c2d) t=2📈 view plot
🚷 view threshold
11.16 µs
(-4.00%)Baseline: 11.63 µs
12.55 µs
(88.95%)
t-wise small (c2d) t=3📈 view plot
🚷 view threshold
12.34 µs
(-3.97%)Baseline: 12.85 µs
13.63 µs
(90.56%)
🐰 View full continuous benchmarking report in Bencher

Introduces Rust and CLI APIs to enable determinism and set a seed.
Uses the same kind of RNG for both scenarios, `SmallRng`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make Determinism a Flag Instead of a Feature

1 participant