Skip to content

Intermittent-power benchmark results with realistic power failures - #76

Merged
byeongjee merged 7 commits into
mainfrom
byeongjee/jormungandr
Aug 20, 2026
Merged

Intermittent-power benchmark results with realistic power failures#76
byeongjee merged 7 commits into
mainfrom
byeongjee/jormungandr

Conversation

@byeongjee

Copy link
Copy Markdown
Owner

Summary

The first full ckpt intermittent matrix (13 benchmarks x milp/rockclimb/schematic/schematicO3 x 10 traces) showed almost no power-failure activity: MILP finished with 0 recoveries nearly everywhere while RockClimb saw many, and 25 runs never completed. Root causes: the replayed Mementos traces are far slower than the benchmarks (an outage only every 5-50 s), and the 3.3 V wait threshold was reachable only at trace peaks (the series schottky diode drops the supply below it except when the trace exceeds ~3.5 V, 2-15% of the time).

Changes:

  • Wait threshold 3.3 V -> 3.0 V (vcc_wait.c), with config_board.json capacity recomputed for the lower full-charge level.
  • Replay traces time-compressed 10x (preprocess_traces.py --speedup, regenerated benchmarks/traces/*.csv): power failures now occur 0.25-1.9/s, in the range RockClimb (RTAS'22) evaluates against.
  • cnt_wait counter: boundaries/boots that find VCC below the threshold and sleep are now counted (this is the event RockClimb's cost model calls a wait; real brownouts remain cnt_recovery) and reported as runtime_wait_count in the intermittent CSV.
  • Docs: actual 560 Ohm series resistor (was documented as 5.6 kOhm).
  • Results in results/intermittent/ (per-benchmark CSVs, summary.csv, report.md, resumable driver + summarizer).

Results (520 runs)

algo complete correct mean waits mean recoveries mean t (s)
milp 130/130 130/130 9.0 0.1 0.87
rockclimb 129/130 129/129 231.7 9.3 32.23
schematic 130/130 130/130 38.6 1.2 4.95
schematicO3 130/130 130/130 11.3 0.1 1.14

Every completed run returns the uninstrumented baseline's result. The single incomplete is stringsearch_fixed/rockclimb on trace 4 (finishes in 49-187 s on the other nine traces).

Test plan

  • uv run pytest tests/ unit suites pass (incl. test_preprocess_traces.py).
  • On-device: aes/crc verified across all traces and algorithms before the full matrix.

@byeongjee
byeongjee merged commit 00ce410 into main Aug 20, 2026
7 checks passed
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.

1 participant