Skip to content

Use mpi-extensions main Open MPI in CI#834

Open
allnes wants to merge 12 commits into
learning-process:masterfrom
allnes:codex/use-mpi-extensions-nightly-openmpi
Open

Use mpi-extensions main Open MPI in CI#834
allnes wants to merge 12 commits into
learning-process:masterfrom
allnes:codex/use-mpi-extensions-nightly-openmpi

Conversation

@allnes

@allnes allnes commented Jun 16, 2026

Copy link
Copy Markdown
Member

What changed

  • Installs Open MPI from the learning-process/mpi-extensions main prerelease in Linux/macOS CI instead of package-manager MPI.
  • Adds scripts/install_mpi_extensions.py and a reusable setup action wrapper to download, verify, and unpack the selected release asset.
  • Requires -D PPC_MPI_EXTENSIONS_HOME=/path/to/mpi-extensions-openmpi for Linux/macOS CMake builds when C++ components are enabled.
  • Teaches CMake to select the MPI wrappers from that prefix and emit ppc_mpi_runtime_env.json; scripts/run_tests.py consumes that file and sets the required runtime environment itself.
  • Leaves Windows MPI discovery unchanged.

User impact

A developer or CI job can unpack the mpi-extensions Open MPI archive anywhere and pass only:

cmake -S . -B build -D PPC_MPI_EXTENSIONS_HOME=/path/to/mpi-extensions-openmpi

No Homebrew/apt MPI install and no manual PATH, LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, MPI_HOME, or OPAL_PREFIX exports are required for Linux/macOS course builds/tests.

Validation

  • macOS arm64: installed the current mpi-extensions main Open MPI package, verified CMake fails without PPC_MPI_EXTENSIONS_HOME, configured/built/installed PPC_TASKS=example with ccache, and ran MPI tests via scripts/run_tests.py without MPI exports.
  • Linux x86_64 (ubuntu-x86): installed the current mpi-extensions main Open MPI package, verified CMake fails without PPC_MPI_EXTENSIONS_HOME, configured/built/installed PPC_TASKS=example with ccache, and ran MPI tests via scripts/run_tests.py without MPI exports.
  • Local static checks: isort, ruff, ruff format --check, flake8, cmake-format, yamllint, check-yaml, editorconfig-checker, py_compile, git diff --check, and actionlint for workflows.

Notes

pre-commit run as a single full command is blocked locally by this Mac's Node/npm engine mismatch in the markdownlint hook. The affected Python/CMake/YAML/editorconfig hooks were run directly.

@allnes allnes marked this pull request as ready for review June 16, 2026 16:35
@allnes allnes requested a review from aobolensk as a code owner June 16, 2026 16:35
@codecov

codecov Bot commented Jun 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.63%. Comparing base (5f1e6ac) to head (e19dd76).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #834   +/-   ##
=======================================
  Coverage   90.63%   90.63%           
=======================================
  Files          15       15           
  Lines         491      491           
  Branches      183      183           
=======================================
  Hits          445      445           
  Misses          8        8           
  Partials       38       38           

☔ 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.

@allnes

allnes commented Jun 16, 2026

Copy link
Copy Markdown
Member Author

@aobolensk please review

@allnes allnes changed the title Use mpi-extensions nightly Open MPI in CI Use mpi-extensions main Open MPI in CI Jun 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant