HPC / Rust
mpi-rma
Typed, safe MPI one-sided communication for Rust, with a fixed-slot ring transport.
published
MPI one-sided communication lets a process write into a peer's memory window. mpi-rma puts a typed Rust API over rsmpi and adds a ring transport. Payloads go into pre-allocated slots, polling reads local memory, and no sender waits for the receiver.
Safe mode gates the sender with an acknowledgement counter, and a send that would overwrite an unread slot fails with Error::Full. Raw mode never refuses. It overwrites and reports the gap through lost(). Each slot carries a sequence, a length and a CRC32, so loss and corruption are visible.
Measured on one node over shared memory. The repository warns the result may not hold across nodes. The command below rebuilds the figure from sealed runs that so far exist only in the Nix store of the machine that recorded them.
nix build github:PKD667/mpi-rma/333d559496258e12960d72b621be6aee5ba6a155#perf