ci: 🧪 add MPI-enabled matrix lanes - #318
Conversation
|
Docs preview: https://pr-318.monoprop-docs.pages.dev |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #318 +/- ##
=======================================
Coverage 97.70% 97.70%
=======================================
Files 14 14
Lines 742 742
Branches 98 98
=======================================
Hits 725 725
Misses 12 12
Partials 5 5
Flags with carried forward coverage won't be shown. Click here to find out more. |
|
we need to once again change the required checks, since I changed their name again (to make it more compact) |
Panadestein
left a comment
There was a problem hiding this comment.
Thanks @robertodr! The 600s timeout is a great idea. I wonder if it is possible to diagnose whether that timeout was due to a deadlock, i.e. the test was really not slow but made no progress.
Build and exercise the C++ MPI variant explicitly on Linux x86-64, Linux ARM64, and macOS, including the combined wide-index configuration. Keep MPI jobs identifiable in status checks and prevent uv from reusing a non-MPI cached build. Assisted-by: Pi:gpt-5.6-sol
Assisted-by: Pi:gpt-5.6-sol
Separate serial and MPI CTest runs, propagate requested rank matrices, bound MPI deadlocks, and isolate uv caches by build configuration. Assisted-by: Pi:gpt-5.6-sol
Make MPI a public link dependency so libmonoprop resolves its MPI symbols directly, including on Darwin where unresolved shared-library symbols are rejected. Assisted-by: Pi:gpt-5.6-sol
Initialize MPI in standalone smoke executables and merge simultaneous scikit-build CMake overrides so the combined wide-index MPI lane enables both variants. Assisted-by: Pi:gpt-5.6-sol
Condition MPI usage requirements on the package build option so a serial package cannot inherit MPI from an unrelated downstream target. Assisted-by: Pi:gpt-5.6-sol
Assisted-by: Pi:gpt-5.6-sol
Signed-off-by: Roberto Di Remigio Eikås <robertodr@users.noreply.github.com>
32496d7 to
f12ce5b
Compare
|
@Panadestein I don't know if that is possible, without some instrumentation. |
…ch workflow #318 added `cache-suffix: benchmark` to bench.yml's setup-uv step after this branch forked. The rework rewrote the surrounding job, so the line is restated here rather than left to a three-way merge that would either conflict or drop it. Assisted-by: ClaudeCode:claude-opus-5



🤖 AI text below 🤖
Build and exercise the C++ MPI variant explicitly on Linux x86-64, Linux ARM64, and macOS, including the combined wide-index configuration. Keep MPI jobs identifiable in status checks and prevent uv from reusing a non-MPI cached build.
CI Workflow and Test Improvements
mpimatrix axis to CI jobs in.github/workflows/test.yml, enabling parallel testing of both MPI-enabled and serial (non-MPI) builds across Linux x86-64, Linux ARM64, and macOS runners. Also updated environment variables and install logic to conditionally include MPI dependencies and extras. [1] [2] [3] [4] [5]mpimatrix axis is enabled. [1] [2].github/workflows/qa-analysis.ymlto use separate serial and MPI instrumented builds, with aggregation viajust code-coverage-collectandjust code-coverage-aggregaterecipes, and improved artifact handling. [1] [2]CMake and Build System Changes
monoprop_ENABLE_MPIvariable rather than the presence of theMPI::MPI_CXXtarget, ensuring consistent and explicit MPI configuration in both the main project and consumers. [1] [2] [3]-fprofile-update=atomicfor more robust parallel coverage data collection.Documentation and Usage Clarifications
README.mdandAGENTS.mdto clarify how MPI and wide-term-index variants are enabled in CI and local builds, the need for MPI initialization/finalization in standalone C++ programs, and how coverage is merged from both serial and MPI runs. [1] [2]General CI Improvements
cache-suffixvalues to allastral-sh/setup-uvsteps across workflows to avoid cache collisions between different CI jobs. [1] [2] [3] [4] [5] [6] [7] [8]MPI Initialization in Tests
Checklist
docs/,CONTRIBUTING.md) if neededCHANGELOG/ release notes updated if applicableAI/LLM disclosure
Important
By opening this PR I confirm that I have read CONTRIBUTING.md and I agree to the terms of the Contributor License Agreement.
Warning
If you're contributing on behalf of your employer, contact cla@algorithmiq.fi to arrange a Corporate CLA.