Skip to content

Multi-rank marker exchange with CUDA-aware MPI #698

Closed

Description

@max-models

Particles have to move between ranks without going through the host.

  • check Particles.mpi_sort_markers and the send/receive buffers for host staging on CuPy
  • use device buffers with CUDA-aware MPI (xp.mpi_is_cuda_aware(), cunumpy.mpi.synchronize_for_mpi, as feectools does since CUDA 2 - MPI with device buffers feectools#86)
  • a 2-rank GPU run without host/device transfers in the exchange

Part of #650 (see CUDA_STRATEGY.md).

Activity

  1. added
    GPURunning Struphy on GPUs
    CUDACUDA kernels and the CUDA porting (see #650)
    on Oct 7, 2026
  2. max-models commented on Oct 14, 2026

    @max-models
    MemberAuthor

    Done in #712: Particles.mpi_sort_markers exchanges the marker rows as device buffers with CUDA-aware MPI (_sendrecv_markers_device), with pinned host staging and a warning when MPI isn't CUDA-aware. The SPH ghost-box exchange (_sendrecv_markers_boxes) still goes through the host. That part belongs with the SPH port in #694.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    CUDACUDA kernels and the CUDA porting (see #650)GPURunning Struphy on GPUs

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions