Skip to content

testrun: TESTRUN_LAUNCHER for batch systems; tests/reconverse-site-run.sh for HPC-site runs of the reconverse tier - #3975

Merged
ritvikrao merged 1 commit into
reviewed-with-reconversefrom
site-run
Sep 12, 2026
Merged

testrun: TESTRUN_LAUNCHER for batch systems; tests/reconverse-site-run.sh for HPC-site runs of the reconverse tier#3975
ritvikrao merged 1 commit into
reviewed-with-reconversefrom
site-run

Conversation

@lvkale

@lvkale lvkale commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Summary

Runtime-core changes get a manual run on an HPC site before merging (the reconverse-ci header says so), and until now that meant a hand-written sbatch script each time; the Anvil validation of reconverse #217 and #222 wrote one. This makes it a one-line job that tracks CI.

  • testrun honors TESTRUN_LAUNCHER: a launcher plus flags, e.g. srun --mpi=pmi2 -N2 --ntasks-per-node=1 -c2, used for every run including single-process ones, with -n <procs> appended. Inside a Slurm allocation a reconverse binary must go through srun even alone (LCI's bootstrap reads the inherited SLURM_NTASKS/SLURM_PROCID and waits for peers). Unset, nothing changes: bare exec, or lcrun for TESTRUN_PROCS > 1.
  • tests/reconverse-site-run.sh runs the reconverse-ci.yaml TEST_DIRS tier inside an allocation: build each directory, then make test once single-process and once as PROCS processes over NODES nodes, one RESULT <dir> <shape> exit=<code> line per run and a summary. SITE=anvil loads that machine's modules and hwloc library path; SITE=delta sets FI_PROVIDER=cxi; launcher and flags are overridable (which also lets it run with lcrun on a workstation).

Usage, from an allocation such as salloc -N 2 -n 4 -c 2 or an sbatch script, after building charm:

SITE=anvil CHARM_BUILD=$PWD/reconverse-linux-x86_64 tests/reconverse-site-run.sh
SITE=delta NODES=2 CHARM_BUILD=$PWD/reconverse-linux-x86_64 tests/reconverse-site-run.sh

Checked on macOS with lcrun standing in for srun (LAUNCHER=.../lcrun LAUNCHER_ARGS_SINGLE= LAUNCHER_ARGS_MULTI= NODES=1): the three testrun modes produce the expected commands and the script runs a two-directory tier end to end. Not yet exercised on Anvil or Delta itself; the first site run of it is the remaining test.

🤖 Generated with Claude Code

…n.sh

Runtime-core changes get a manual run on an HPC site before merging, and
until now that meant a hand-written sbatch script per run (the Anvil
validation of reconverse #217/#222 wrote one). Two pieces make it a
one-line job that tracks CI:

- testrun honors TESTRUN_LAUNCHER, a launcher plus its flags ("srun
  --mpi=pmi2 -N2 --ntasks-per-node=1 -c2"), used for every run including
  single-process ones, with -n <procs> appended. Inside a Slurm allocation a
  reconverse binary must go through srun even alone: LCI's bootstrap reads
  the inherited SLURM_NTASKS/SLURM_PROCID and waits for peers. Unset, the
  behaviour is unchanged (bare exec, or lcrun for TESTRUN_PROCS > 1).

- tests/reconverse-site-run.sh runs the reconverse-ci TEST_DIRS tier (read
  from the workflow file, so the site run and CI stay in step) inside an
  allocation: build each directory, then make test once as a single process
  and once as PROCS processes over NODES nodes, printing one RESULT line
  per run. SITE=anvil loads that machine's modules and hwloc path;
  SITE=delta sets the cxi provider; the launcher and its flags are
  overridable, which also makes the script runnable with lcrun on a
  workstation (used to check it here).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@ritvikrao
ritvikrao merged commit 8d21fda into reviewed-with-reconverse Sep 12, 2026
4 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.

2 participants