Repository navigation
MPI support - #25
Merged
Merged
MPI support#25
Conversation
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Critical MPI construction and multiple validation issues remain unresolved.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
Open (1)
What changed in this PR
Adds CPU MPI support via topology abstractions, Cartesian decomposition, halo exchange, collective CFL handling, padded boundaries, and distributed scalar/multiphase stepping.
Changes:
- Adds serial and MPI topology infrastructure.
- Integrates distributed stepping and boundary synchronization.
- Adds extensive serial, MPI, padding, halo, and CFL tests.
| File | Summary |
|---|---|
test/test_topology_interface.jl |
Tests topology APIs and boundaries. |
test/test_serial_topology_step.jl |
Tests serial padded stepping. |
test/test_serial_topology_multiphase.jl |
Tests serial multiphase parity. |
test/test_padded_inflow.jl |
Tests padded inflow behavior. |
test/test_padded_boundaries.jl |
Tests padded boundaries. |
test/test_cfl_api.jl |
Tests public CFL APIs. |
test/Project.toml |
Adds MPI test dependency. |
test/mpi/test_staggered_velocity.jl |
Tests distributed staggered velocities. |
test/mpi/test_scalar_advection.jl |
Tests distributed scalar advection. |
test/mpi/test_multiphase.jl |
Tests distributed multiphase advection. |
test/mpi/test_halo.jl |
Tests MPI halo exchange. |
test/mpi/test_cfl_collective.jl |
Tests collective CFL reductions. |
test/mpi/runtests.jl |
Provides the MPI test launcher. |
test/mpi/run_with_timeout.jl |
Provides MPI timeout handling. |
src/WENO5/conservative_flux.jl |
Adds padded conservative flux support. |
src/WENO5/cache.jl |
Stores topology and extent state. |
src/utils.jl |
Adds padded extent bookkeeping. |
src/topology_interface.jl |
Defines topology APIs and CFL helpers. |
src/staggered_velocity_interpolation.jl |
Adds distributed velocity preparation. |
src/multiphase/cache.jl |
Stores multiphase topology state. |
src/multiphase/boundaries.jl |
Adds padded multiphase boundaries. |
src/multi_field_time_stepping.jl |
Uses topology-aware LF speeds. |
src/FiniteDiffWENO5.jl |
Loads topology infrastructure. |
src/distributed_step.jl |
Builds topology-backed schemes. |
src/boundaries.jl |
Adds process and padded boundaries. |
src/3D/time_stepping.jl |
Integrates distributed 3D stepping. |
src/3D/semi_discretisation_3D.jl |
Integrates 3D padded inflows. |
src/3D/multiphase_time_stepping.jl |
Integrates distributed 3D multiphase stepping. |
src/3D/multiphase_semi_discretisation_3D.jl |
Integrates 3D multiphase boundaries. |
src/2D/time_stepping.jl |
Integrates distributed 2D stepping. |
src/2D/semi_discretisation_2D.jl |
Integrates 2D padded inflows. |
src/2D/multiphase_time_stepping.jl |
Integrates distributed 2D multiphase stepping. |
src/2D/multiphase_semi_discretisation_2D.jl |
Integrates 2D multiphase boundaries. |
src/1D/time_stepping.jl |
Integrates distributed 1D stepping. |
src/1D/semi_discretisation_1D.jl |
Integrates 1D padded inflows. |
src/1D/multiphase_time_stepping.jl |
Integrates distributed 1D multiphase stepping. |
src/1D/multiphase_semi_discretisation_1D.jl |
Integrates 1D multiphase boundaries. |
Project.toml |
Registers the MPI extension. |
ext/MPIExt.jl |
Defines the MPI package extension. |
ext/mpi/topology.jl |
Implements MPI Cartesian topology and reductions. |
ext/mpi/halo.jl |
Implements MPI halo exchange. |
ext/KAMultiphase3D.jl |
Rejects unsupported GPU/MPI combinations. |
ext/KAMultiphase2D.jl |
Rejects unsupported GPU/MPI combinations. |
ext/KAMultiphase1D.jl |
Rejects unsupported GPU/MPI combinations. |
ext/KAExt.jl |
Handles KernelAbstractions integration. |
ext/ChmyExt.jl |
Handles Chmy integration and restrictions. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
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.

Add MPI support for CPU via an extension.