Expand description
Non-blocking request handling. Mirrors mpi::request in rsmpi: Request
borrows the buffer involved in an in-flight operation for the lifetime of
the request, Scope bounds that borrow, and WaitGuard / CancelGuard
complete a request when they go out of scope.
As in rsmpi, dropping an in-flight Request panics — a request must be
consumed by wait, test or cancel, or handed to a guard.
Structs§
- Cancel
Guard - Cancels (then completes) the contained request when dropped. Mirrors
rsmpi’s
CancelGuard. - Generalized
Request - A user-defined (“generalized”) request, completed by external code rather
than by the MPI runtime (
MPI_Grequest_start). Pair it with aGeneralizedRequestCompleter: whichever code performs the underlying work callsGeneralizedRequestCompleter::complete, after whichwait/teston the request return. - Generalized
Request Completer - The completion handle for a
GeneralizedRequest(MPI_Grequest_complete). - Local
Scope - A dynamically-bounded scope created by
scope. - Persistent
Request - A persistent (re-usable) communication request. Created with
crate::point_to_point::Destination::send_init/crate::point_to_point::Source::receive_init, then repeatedlystarted andwaited. The associated buffer is borrowed for the request’s lifetime. - Request
- A handle to a non-blocking operation, borrowing its buffer for
'a. - Static
Scope - The scope of the entire program (
'static). - Wait
Guard - Waits on the contained
Requestwhen dropped (RAIIcompletion of a send). Mirrors rsmpi’sWaitGuard.
Traits§
- Scope
- A scope that bounds the lifetime of the buffers borrowed by requests. Safe
scopes are
StaticScope('static) and theLocalScopehanded to the closure passed toscope.
Functions§
- scope
- Open a request scope. Requests created inside
fmay borrow buffers that outlive the scope; the borrow checker forbids letting a request escape. - wait_
all - Wait for all requests to complete (
MPI_Waitall), returning their statuses. - wait_
any - Wait for any one of the requests to complete, returning its index and
status and removing it from the vector (
MPI_Waitany). ReturnsNoneif the vector is empty.