Skip to content

Add ibrun/aprun/flux run/prun, drop legacy jsrun/lrun/runjob - #171

Open
jeanbez wants to merge 1 commit into
developfrom
add-mpi-launchers
Open

jeanbez wants to merge 1 commit into
developfrom
add-mpi-launchers

Conversation

@jeanbez

@jeanbez jeanbez commented Aug 19, 2026 •

Copy link
Copy Markdown
Member

Fixes #170.

The schema's `mpi.command` enum previously listed `mpirun`, `mpiexec`, `srun`, `jsrun`, `runjob`. Two problems: several currently-used launchers were missing, and three of the listed launchers target systems that are decommissioned or actively winding down.

Additions

  • ibrun — TACC (Stampede3, Frontera, Lonestar6).
  • aprun — Cray ALPS (remaining XC40-class systems).
  • flux run — LLNL Tioga (ATS-4), coming to El Capitan.
  • prun — Cray PALS.

Removals

  • runjob — BlueGene/Q, last system decommissioned around 2019.
  • jsrun — LSF launcher on Summit/Sierra. Summit decommissioned Nov 2024, Sierra 2023.
  • lrun — LLNL Sierra/Lassen wrapper over jsrun; same fate.

Users on any of the removed systems can re-add the entry locally, or fall back to the raw `command` string once the enum is opened up.

Touchpoints

  1. `schemas/h5bench-config.schema.json`: new enum `[mpirun, mpiexec, srun, ibrun, aprun, flux run, prun]`. Description spells out the per-launcher rank-flag mapping.
  2. `src/h5bench.py` `check_parallel`: shell-blacklist now matches the enum.
  3. `src/h5bench.py` `prepare_parallel`: dispatches the four new launchers to `{cmd} -n `.

Tests

Parametrised test in `test_driver_unit.py` covers each of the four new launchers via the `ranks:` path.

Test plan

  • Unit tests pass (4 new parametrised cases).
  • Schema still accepts existing sample configs.
  • Schema rejects `command: "jsrun"` and `command: "runjob"` (the removals).
  • A `{"command": "ibrun", "ranks": "4"}` config produces `ibrun -n 4`.

@jeanbez
jeanbez force-pushed the add-mpi-launchers branch from 204c851 to 05eca5d Compare August 19, 2026 06:02
@jeanbez jeanbez changed the title Add ibrun, aprun, flux run, lrun, prun as recognized MPI launchers Add ibrun/aprun/flux run/prun, drop legacy jsrun/lrun/runjob Aug 19, 2026
@codecov

codecov Bot commented Aug 19, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 58.87%. Comparing base (94f11ed) to head (0470824).

Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #171      +/-   ##
===========================================
+ Coverage    58.85%   58.87%   +0.01%     
===========================================
  Files           14       14              
  Lines         6062     6064       +2     
  Branches      1427     1428       +1     
===========================================
+ Hits          3568     3570       +2     
  Misses        1917     1917              
  Partials       577      577              
Flag Coverage Δ
c 58.87% <100.00%> (+0.01%) ⬆️
python 58.87% <100.00%> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Fixes #170. The schema's mpi.command enum previously listed mpirun,
mpiexec, srun, jsrun, and runjob. Two problems with that list:

  * jsrun, lrun (Sierra/Lassen wrapper), and runjob (BlueGene/Q) all
    target systems that are decommissioned or actively winding down;
    keeping them in the enum implies support this project no longer
    validates against.
  * Several launchers still in production use (ibrun on TACC,
    aprun on remaining Crays, flux run on LLNL Tioga, prun on
    Cray PALS) were missing entirely.

Three touchpoints:

  * schemas/h5bench-config.schema.json: replace the enum with
    [mpirun, mpiexec, srun, ibrun, aprun, flux run, prun]. Description
    documents the rank-flag mapping and notes the legacy launchers
    can be re-added if a live system needs them.
  * src/h5bench.py check_parallel: shell-blacklist now matches the
    enum (ibrun, aprun, prun added; jsrun/lrun not added).
  * src/h5bench.py prepare_parallel: dispatches ibrun/aprun/flux
    run/prun to "-n <ranks>", their common convention.

Tests: parametrised test in test_driver_unit.py covers each of the
four new launchers via the ranks path.
@jeanbez
jeanbez force-pushed the add-mpi-launchers branch from 05eca5d to 0470824 Compare August 20, 2026 01:13
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.

1 participant