Level 2: clean-clone and one-slot-allocation fixes (hipBone/miniWeather vendored files, Branson ctest) - #9
Merged
Conversation
…miniWeather The repository's global `build/` ignore rule also matched two directories that upstream ships as part of their source trees: hipBone's vendored OCCA scripts/build/ (Makefile, compiledDefinesTemplate.hpp[.in], shellTools.sh, Make.fortran, Make.fortran_rules) and miniWeather's cpp/build/check_output.sh. They existed only in the original development worktree and were never committed, so a fresh clone of main could not build hipBone (OCCA's Makefile includes scripts/build/Makefile) or finish miniWeather's build.sh (it copies check_output.sh). Found on 2026-09-15 by rebuilding every Level 2 app from a new worktree. The seven files are byte-identical to the recorded upstream checkouts (hipBone e9f6908a, miniWeather b001069e). .gitignore re-includes the two directories; test_vendored_completeness.sh (run_all.sh) fails in a clone that lacks them or when an ignored file hides inside a vendored level2/ tree.
…lot Slurm allocation
validate.sh runs upstream's ctest, whose two 2-rank unit tests use a bare
`mpirun -np 2`. Inside a Slurm allocation made with one task slot per node
(SLURM_TASKS_PER_NODE=1) PRRTE refuses that launch ("not enough slots") and
the validation fails although the tests themselves are fine; the project
launcher already relaxes the same limit per launch after its GPU checks.
validate.sh now applies the same relaxation (PRTE_MCA_rmaps_default_mapping_
policy=:OVERSUBSCRIBE) for the ctest step only, only when the allocation has
fewer than two slots, prints a note, and clears it before the 1-rank GPU run.
Two CPU ranks on one node; no GPU sharing is involved. Verified: 11/11 tests,
validation PASS, in a -n 1 interactive allocation on dgx003 (2026-09-15).
… of ctest Review follow-up: instead of exporting PRTE_MCA_rmaps_default_mapping_policy and unsetting it afterwards (which touched the caller's environment), the relaxation is now passed through `env ... ctest ...` for the ctest invocation only. Slot count >= 2: no override at all. Slot count < 2: only the upstream 2-rank CPU unit tests see :OVERSUBSCRIBE; the 1-rank GPU validation run and the caller keep their environment. Re-verified in the -n 1 allocation: 11/11 tests, validation PASS, variable absent after the script; test_vendored_completeness.sh 10/10.
bowencui123
marked this pull request as ready for review
September 15, 2026 20:45
This was referenced Sep 15, 2026
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.
Found on 2026-09-15 while rebuilding and validating every Level 2 mini-app from a fresh worktree of
main(interactive Slurm allocation,-n 1).1. hipBone / miniWeather cannot be built from a clean clone. The repository's global
build/ignore rule (.gitignoreline 7) also matched two directories that upstream ships inside their source trees: hipBone's vendored OCCAscripts/build/(Makefile, compiledDefinesTemplate.hpp[.in], shellTools.sh, Make.fortran, Make.fortran_rules) and miniWeather'scpp/build/check_output.sh. They existed only in the original development worktree and were never committed. OCCA's Makefile includesscripts/build/Makefile(hipBone build stops at "No rule to make target"); miniWeather'sbuild.shcopiescheck_output.sh(build stops atcp: cannot stat).e9f6908a, miniWeatherb001069e,_upstream/PROVENANCE.txt)..gitignorere-includes the two directories so they stay tracked.level2/tools/tests/test_vendored_completeness.sh(wired intorun_all.sh) fails in a clone that lacks them, and in a git checkout also fails when an ignored file hides inside a vendoredlevel2/tree.2. Branson's validation fails in a one-slot Slurm allocation. Upstream's ctest launches its two 2-rank unit tests with a bare
mpirun -np 2; withSLURM_TASKS_PER_NODE=1PRRTE refuses ("not enough slots"), sovalidate.shreported FAIL although the tests are fine. The project launcher already relaxes that limit per launch after its GPU checks;validate.shnow does the same for the ctest invocation only, as a command-local environment (env PRTE_MCA_rmaps_default_mapping_policy=:OVERSUBSCRIBE ctest ...), only when the allocation has fewer than two slots, with a printed note; nothing is exported, so the caller's environment and the 1-rank GPU run keep their state (review follow-up, 2026-09-15). Two CPU ranks on one node; no GPU sharing. Verified: 11/11 tests, validation PASS on dgx003.No dependency, source or validation-criteria changes.