fix(ci): 🐛 install MPI for the bare-metal benchmark - #340
Conversation
The ladder introduced in #323 builds with monoprop_ENABLE_MPI=ON and launches L2b under mpiexec, but the job set up its environment without the `mpi` input, so no MPI runtime reached the runner and CMake stopped at `Package 'mpi-cxx' not found`. The cache suffix moves with the configuration: the `benchmark` cache was filled by the non-MPI builds that preceded the ladder, and a monoprop restored from it would be the one every rung shares. Assisted-by: claude-code:claude-opus-5
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe benchmark workflow now uses a dedicated ChangesBenchmark cache setup
Priority: ⬇️ Low — Defer this narrow benchmark CI setup change because it only enables MPI dependencies and isolates the benchmark cache for bare-metal runs. Estimated code review effort: 1 (Trivial) | ~2 minutes Merge Risk: ⚪ Minimal · up to The benchmark workflow now installs MPI and uses a separate MPI-specific cache, preventing non-MPI binaries from being reused by MPI benchmark runs. The change is ready to merge. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Docs preview: https://pr-340.monoprop-docs.pages.dev |
|
🤖 AI text below 🤖 End-to-end validation: run 34228895756, dispatched on this branch, green in 9m21s.
Peaks landed just under the documented sizing figures (L1 2.45 vs ~2.60 GiB, L2a 18.36 vs ~19.11 GiB, L2b 20.73 vs ~23.71 GiB/node), so the This run also auto-created a Bencher branch named |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #340 +/- ##
=======================================
Coverage 97.70% 97.70%
=======================================
Files 14 14
Lines 742 742
Branches 98 98
=======================================
Hits 725 725
Misses 12 12
Partials 5 5
Flags with carried forward coverage won't be shown. Click here to find out more. |
|



🤖 AI text below 🤖
Summary
The bare-metal benchmark has been red since #323 merged. That PR turned the job into the
three-rung ladder, which builds with
monoprop_ENABLE_MPI=ONand launches L2b undermpiexec -n 4— butbench.ymlsets up its environment with only acache-suffix, and.github/actions/setupinstallstools/packages/apt-mpi.txtonly when it is handedmpi: on. So the runner had noMPI::MPI_CXXwhile the build was told to require it, andthe run stopped in Install package:
Every bare-metal run before #323 was green because the old workflow built without MPI. The
fix is the one input, plus a cache suffix that moves with the configuration:
benchmarkwasfilled by those non-MPI builds, and a
monoproprestored from it is the binary every rungshares —
resolve_cores.pywould then stop the run one step later with "monoprop was builtwithout MPI".
Nothing downstream of the build had ever run in CI, so this was validated end to end rather
than by making the configure step pass:
bench_bare_metal.ymldispatched on this branch,all three rungs measured, shape-checked and uploaded. Run linked in a comment below.
Changes
.github/workflows/bench.yml: passmpi: "on"to the setup action, and move thesetup-uvcache suffix tobenchmark-mpi.Checklist
docs/,CONTRIBUTING.md) if neededCHANGELOG/ release notes updated if applicableAI/LLM disclosure
Summary by CodeRabbit