Skip to content

MPI support - #25

Merged
Iddingsite merged 9 commits into
mainfrom
MPI
Sep 27, 2026
Merged

Iddingsite merged 9 commits into
mainfrom
MPI

Conversation

@Iddingsite

Copy link
Copy Markdown
Member

Add MPI support for CPU via an extension.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 High severity

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.

Comment thread ext/mpi/topology.jl
@Iddingsite
Iddingsite merged commit cf8835c into main Sep 27, 2026
10 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.

3 participants