Repository navigation
chapel: Wave 3 — cross-node gasnet/ofi over real NIC (cluster runner required) #87
Description
Activity
Adaptive update 2026-06-01 — option 1 confirmed unavailable
Audited upstream
chapel-lang/chapelrelease2.8.0(latest). Asset list:```
chapel-2.8.0-1.{debian12,debian13,ubuntu22,ubuntu24}.{amd64,arm64}.deb
chapel-2.8.0-1.{el10,fc42,fc43}.{aarch64,x86_64}.rpm
chapel-2.8.0-1.{amzn2023}.{aarch64,x86_64}.rpm (chapel-minimal-* variant)
chapel-2.8.0-20260309195041_d334648.hpecrayex.{aarch64,x86_64}.rpm
chapel-2.8.0.tar.gz
```No
chapel-multilocale-*package exists in upstream releases. The only multilocale-capable artefacts are:- The HPE Cray EX RPMs (
*.hpecrayex.*) — not deployable on standard GitHub runners. - The
chapel-2.8.0.tar.gzsource — requires the source-build path (option 2 in the issue body).
→ Option 1 in the issue body ("chapel-multilocale-2.8.0 .deb if upstream publishes one") is conclusively unavailable as of upstream 2.8.0 release.
Remaining viable paths are option 2 (source build with
CHPL_COMM=gasnet+ ccache, slow) or option 3 (self-hosted runner with multilocale Chapel preinstalled). Decision is yours; no estate-side precedent yet for either in CI.- The HPE Cray EX RPMs (
Wave 2 status — MERGED
Wave 2 (single-host oversubscribed
gasnet+smpvia source-built Chapel) landed via #99 at 2026-06-02 04:27Z, after six cold-cache CI iterations debugging four Chapel-2.8.0 sharp edges:MANPATH: unbound variableinsetchplenv.bashunderset -u— fixed byexport MANPATH=${MANPATH:-}before sourcing.CHPL_LLVMrequired for source build — fixed withexport CHPL_LLVM=none(gnu C backend is enough for multilocale comms).chpl --aboutremoved in 2.8.0 — replaced withprintchplenv.printchplenv --simpledoesn't emit cleanKEY=value— switched to runtime-layout existence check (find -type d -name comm-gasnet).
A fifth edge surfaced in #100: cached
CHPL_UNWIND=systemvs cache-hit-inferredbundledmismatch — fixed by pinningCHPL_UNWIND=systemexplicitly + always-installing libunwind-dev + cache-gen v1→v2.All four edges documented in the wiki at Chapel-Metalayer for the next chapel-from-source step to crib from.
Wave 3 status — still cluster-runner-gated
Wave 3 (cross-node
gasnet/ofiover a real NIC) is not exercisable on default GH runners — needs a beefier or self-hosted runner. ROADMAP records this as a separate[ ]under the 'Multi-locale Chapel orchestration' parent item.Keeping this issue open as the Wave 3 tracker.
- changed the title
[-]chapel: Wave 2 — real multi-locale cluster validation (-nl 16+) on a non-trivial corpus[/-][+]chapel: Wave 3 — cross-node gasnet/ofi over real NIC (cluster runner required)[/+]on Jun 2, 2026 - added a commit that references this issue
on Jun 2, 2026 - addedcicdCI/CD: workflows, actions, lockfiles, pins, runners, release gatesCI/CD: workflows, actions, lockfiles, pins, runners, release gatesenhancementNew capability or improvement to existing behaviourNew capability or improvement to existing behaviour
on Aug 27, 2026 - addedpriority:p2Normal - queue itNormal - queue itscope:repoConfined to this repositoryConfined to this repositorystatus:readyFully specified and ready to be picked upFully specified and ready to be picked up
on Sep 30, 2026
Context
PR #85 landed the Wave 1 chapel-ci scaffolding (six strict gates,
detachable-harness ADR, four silent-loss fixes in Imaging.chpl,
`--resume` hard-fail in static mode). Wave 1 chapel-e2e exercises
`mass-panic --numLocales=1` against a synthetic 2-repo corpus.
True multi-locale execution (`-nl 2` and higher) requires Chapel
built with `CHPL_COMM=gasnet` (or `ofi` / `ucx`). The stock
`chapel-2.8.0-1.ubuntu22.amd64.deb` ships with `CHPL_COMM=none`
and rejects `-nl >1` with:
```
error: Only 1 locale may be used for CHPL_COMM layer 'none'
```
Wave 2 scope
CI install path for multilocale Chapel — either:
`CHPL_COMM=gasnet` + `CHPL_LAUNCHER=…` flags
(slow — caches required to keep CI under a few minutes), or
`chapel-multilocale` CI job — add to `.github/workflows/chapel-ci.yml`,
bumping the gate count from 6 to 7. Exercises `-nl 2` against the
same synthetic 2-repo corpus as `chapel-e2e` so the cross-locale
code path runs even on a single GH runner (locales oversubscribed).
Add to the Base ruleset's `required_status_checks` once green
(ruleset id 14968583).
Non-trivial corpus benchmark — once a multilocale runner is
available, exercise a ~50-repo cluster scan to verify the queue
scheduler's resumability claims and produce numbers for the
"~5–15% slower" assertion in `chapel/README.md` that's currently
labelled "estimate pending Wave 2 benchmark".
Acceptance
revised based on findings
References