Infrastructure

Shared systems for research and compute.

HPC / Rust

mpi-rma

Typed, safe MPI one-sided communication for Rust, with a fixed-slot ring transport.

MPI one-sided communication (RMA) lets a process write into a peer's memory window directly. 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 a cumulative ack counter, and a send that would overwrite an unacknowledged slot is refused with Error::Full. Raw mode never refuses: it overwrites and reports the gap through lost(). Slots carry a sequence, length and CRC32, so loss and corruption are observable rather than silent.

Published under MIT. The repository's measurements were taken on a single node; the README warns the advantage may not hold across nodes.

sender rank 0 receiver rank 1 · memory window pre-allocated slots · seq · len · crc32 put poll (local read) safe ack advances reuse; raw mode overwrites and reports the gap
Fixed-slot ring: pre-allocated slots, a poll that is just a local read, and an ack that gates reuse in safe mode.

Runtime contract

trame

One contract for the NERVE runtime, with the backend selected at build time.

trame is the transport and execution layer of the NERVE neuromorphic runtime. It defines one contract — launches, deployments, frames, lanes, processes and steps — and chooses its implementation when the crate is built: a single process with no transport, an MPI backend, or one CUDA warp per rank.

Because the choice is a Cargo feature, callers and verification fixtures are written once against the same functions, macros and bounds. The device backend is opt-in, so an ordinary build links no CUDA stack.

The contract is a model, not a proof. The repository's conformance run exercises a claim-by-backend table and records only the coverage it exercised, so the implementation qualification is narrower than the contract text.

trame::contract launch · frames · lanes · steps none one process, no transport mpi RMA lanes · message batches nv one CUDA warp per rank selected by Cargo feature at build time; callers are written once
One contract, three implementations. The backend is a compile-time feature, not a run-time choice.