Add self-hosted Raspberry Pi 5 as a benchmark target#8
Merged
Conversation
Register rpi5-8gb (ARM64, self-hosted) in the hardware registry and add it to the weekly benchmark matrix alongside github-actions-ubuntu. The matrix now pairs each Julia version (1.10/1.11/1.12) with a runner + hardware id; max-parallel: 1 keeps all legs serialized so the two machines never push to main concurrently. Results land in their own data/results/rpi5-8gb/... folders, so the dashboard's existing data-driven hardware switcher picks them up with no frontend changes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Node 20 is deprecated on GitHub Actions runners (forced to Node 24 from 2026-06-16). Setting FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 at the workflow level silences the warnings for every JS action — including the actions/cache and pyTooling steps vendored inside julia-actions/cache, which can't be bumped directly. Set in all three workflows since workflow-level env does not cross into the reusable test.yml call. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a self-hosted Raspberry Pi 5 (ARM64) runner as a second benchmark hardware target, alongside the existing
github-actions-ubunturunner. Results are stored separately and the dashboard can switch between machines.The system was already designed for multiple hardware targets (harness self-identifies via
RXBENCH_HARDWARE_ID; results live in disjointdata/results/<id>/...folders; the frontend'sHardwareSwitcherand Compare view are data-driven), so this is mostly an infra + registry change with no frontend code changes.Changes
data/hardware.yml— registerrpi5-8gb/ "Raspberry Pi 5 (8GB)" (kind: self-hosted,arch: aarch64). Mirrors regenerated viamake index..github/workflows/benchmark.yml— thebenchjob now uses amatrix.includepairing each Julia version (1.10/1.11/1.12) with a runner + hardware id: three legs onubuntu-latestand three on[self-hosted, ARM64, pi5].RXBENCH_HARDWARE_IDflows from the matrix;max-parallel: 1serializes all six legs so the two machines never push tomainconcurrently. Commit message now includes the hardware id.benchmarks/harness/test/test_config.jl— assertrpi5-8gbis registered with the expected label/arch.design/architecture.md,IDEA.md— document the Pi target as live (Hard Rule 5: design docs are live).FORCE_JAVASCRIPT_ACTIONS_TO_NODE24across all three workflows to clear the Node 20 deprecation warnings (covers theactions/cache+pyToolingsteps vendored insidejulia-actions/cache, which can't be bumped directly).Data isolation
Pi results land in
data/results/rpi5-8gb/<julia>/<fingerprint>.json, fully separate fromgithub-actions-ubuntu/.... The dashboard's hardware switcher and Compare view pick them up automatically once data exists — no interference between machines.Verification
make indexregenerates mirrors withrpi5-8gb, harness acceptsRXBENCH_HARDWARE_ID=rpi5-8gb.smoke): all six legs green, including all threerpi5-8gblegs routing to the Pi via the[self-hosted, ARM64, pi5]labels. No-sudo setup (setup-julia, cache,Pkg.update()) worked on ARM64;Commit resultscorrectly skipped in smoke mode (public dataset untouched).After merge
Trigger a real (non-smoke) run to populate the first
data/results/rpi5-8gb/...results; the dashboard will then list "Raspberry Pi 5 (8GB)" alongside the Ubuntu runner.🤖 Generated with Claude Code