Trait mpi::collective::CommunicatorCollectives
source · pub trait CommunicatorCollectives: Communicator {
Show 18 methods
// Provided methods
fn barrier(&self) { ... }
fn all_gather_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
where S: Buffer + ?Sized,
R: BufferMut + ?Sized { ... }
fn all_gather_varcount_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
where S: Buffer + ?Sized,
R: PartitionedBufferMut + ?Sized { ... }
fn all_to_all_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
where S: Buffer + ?Sized,
R: BufferMut + ?Sized { ... }
fn all_to_all_varcount_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
where S: PartitionedBuffer + ?Sized,
R: PartitionedBufferMut + ?Sized { ... }
fn all_reduce_into<S, R, O>(&self, sendbuf: &S, recvbuf: &mut R, op: O)
where S: Buffer + ?Sized,
R: BufferMut + ?Sized,
O: Operation { ... }
fn reduce_scatter_block_into<S, R, O>(
&self,
sendbuf: &S,
recvbuf: &mut R,
op: O
)
where S: Buffer + ?Sized,
R: BufferMut + ?Sized,
O: Operation { ... }
fn scan_into<S, R, O>(&self, sendbuf: &S, recvbuf: &mut R, op: O)
where S: Buffer + ?Sized,
R: BufferMut + ?Sized,
O: Operation { ... }
fn exclusive_scan_into<S, R, O>(&self, sendbuf: &S, recvbuf: &mut R, op: O)
where S: Buffer + ?Sized,
R: BufferMut + ?Sized,
O: Operation { ... }
fn immediate_barrier(&self) -> Request<'static, ()> { ... }
fn immediate_all_gather_into<'a, S, R, Sc>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R
) -> Request<'a, R, Sc>
where S: 'a + Buffer + ?Sized,
R: 'a + BufferMut + ?Sized,
Sc: Scope<'a> { ... }
fn immediate_all_gather_varcount_into<'a, S, R, Sc>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R
) -> Request<'a, R, Sc>
where S: 'a + Buffer + ?Sized,
R: 'a + PartitionedBufferMut + ?Sized,
Sc: Scope<'a> { ... }
fn immediate_all_to_all_into<'a, S, R, Sc>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R
) -> Request<'a, R, Sc>
where S: 'a + Buffer + ?Sized,
R: 'a + BufferMut + ?Sized,
Sc: Scope<'a> { ... }
fn immediate_all_to_all_varcount_into<'a, S, R, Sc>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R
) -> Request<'a, R, Sc>
where S: 'a + PartitionedBuffer + ?Sized,
R: 'a + PartitionedBufferMut + ?Sized,
Sc: Scope<'a> { ... }
fn immediate_all_reduce_into<'a, S, R, O, Sc>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R,
op: O
) -> Request<'a, R, Sc>
where S: 'a + Buffer + ?Sized,
R: 'a + BufferMut + ?Sized,
O: 'a + Operation,
Sc: Scope<'a> { ... }
fn immediate_reduce_scatter_block_into<'a, S, R, O, Sc>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R,
op: O
) -> Request<'a, R, Sc>
where S: 'a + Buffer + ?Sized,
R: 'a + BufferMut + ?Sized,
O: 'a + Operation,
Sc: Scope<'a> { ... }
fn immediate_scan_into<'a, S, R, O, Sc>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R,
op: O
) -> Request<'a, R, Sc>
where S: 'a + Buffer + ?Sized,
R: 'a + BufferMut + ?Sized,
O: 'a + Operation,
Sc: Scope<'a> { ... }
fn immediate_exclusive_scan_into<'a, S, R, O, Sc>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R,
op: O
) -> Request<'a, R, Sc>
where S: 'a + Buffer + ?Sized,
R: 'a + BufferMut + ?Sized,
O: 'a + Operation,
Sc: Scope<'a> { ... }
}
Expand description
Collective communication patterns defined on Communicator
s
Provided Methods§
sourcefn barrier(&self)
fn barrier(&self)
Barrier synchronization among all processes in a Communicator
Partake in a barrier synchronization across all processes in the Communicator
&self
.
Calling processes (or threads within the calling processes) will enter the barrier and block
execution until all processes in the Communicator
&self
have entered the barrier.
Examples
See examples/barrier.rs
Standard section(s)
5.3
sourcefn all_gather_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
fn all_gather_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
Gather contents of buffers on all participating processes.
After the call completes, the contents of the send Buffer
s on all processes will be
concatenated into the receive Buffer
s on all ranks.
All send Buffer
s must contain the same count of elements.
Examples
See examples/all_gather.rs
Standard section(s)
5.7
sourcefn all_gather_varcount_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
fn all_gather_varcount_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
Gather contents of buffers on all participating processes.
After the call completes, the contents of the send Buffer
s on all processes will be
concatenated into the receive Buffer
s on all ranks.
The send Buffer
s may contain different counts of elements on different processes. The
distribution of elements in the receive Buffer
s is specified via Partitioned
.
Examples
See examples/all_gather_varcount.rs
Standard section(s)
5.7
sourcefn all_to_all_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
fn all_to_all_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
Distribute the send Buffer
s from all processes to the receive Buffer
s on all processes.
Each process sends and receives the same count of elements to and from each process.
Examples
See examples/all_to_all.rs
Standard section(s)
5.8
sourcefn all_to_all_varcount_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
fn all_to_all_varcount_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
Distribute the send Buffer
s from all processes to the receive Buffer
s on all processes.
The count of elements to send and receive to and from each process can vary and is specified
using Partitioned
.
Standard section(s)
5.8
sourcefn all_reduce_into<S, R, O>(&self, sendbuf: &S, recvbuf: &mut R, op: O)
fn all_reduce_into<S, R, O>(&self, sendbuf: &S, recvbuf: &mut R, op: O)
Performs a global reduction under the operation op
of the input data in sendbuf
and
stores the result in recvbuf
on all processes.
Examples
See examples/reduce.rs
Standard section(s)
5.9.6
sourcefn reduce_scatter_block_into<S, R, O>(
&self,
sendbuf: &S,
recvbuf: &mut R,
op: O
)
fn reduce_scatter_block_into<S, R, O>( &self, sendbuf: &S, recvbuf: &mut R, op: O )
Performs an element-wise global reduction under the operation op
of the input data in
sendbuf
and scatters the result into equal sized blocks in the receive buffers on all
processes.
Examples
See examples/reduce.rs
Standard section(s)
5.10.1
sourcefn scan_into<S, R, O>(&self, sendbuf: &S, recvbuf: &mut R, op: O)
fn scan_into<S, R, O>(&self, sendbuf: &S, recvbuf: &mut R, op: O)
Performs a global inclusive prefix reduction of the data in sendbuf
into recvbuf
under
operation op
.
Examples
See examples/scan.rs
Standard section(s)
5.11.1
sourcefn exclusive_scan_into<S, R, O>(&self, sendbuf: &S, recvbuf: &mut R, op: O)
fn exclusive_scan_into<S, R, O>(&self, sendbuf: &S, recvbuf: &mut R, op: O)
Performs a global exclusive prefix reduction of the data in sendbuf
into recvbuf
under
operation op
.
Examples
See examples/scan.rs
Standard section(s)
5.11.2
sourcefn immediate_barrier(&self) -> Request<'static, ()>
fn immediate_barrier(&self) -> Request<'static, ()>
Non-blocking barrier synchronization among all processes in a Communicator
Calling processes (or threads within the calling processes) enter the barrier. Completion methods on the associated request object will block until all processes have entered.
Examples
See examples/immediate_barrier.rs
Standard section(s)
5.12.1
sourcefn immediate_all_gather_into<'a, S, R, Sc>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R
) -> Request<'a, R, Sc>
fn immediate_all_gather_into<'a, S, R, Sc>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R ) -> Request<'a, R, Sc>
Initiate non-blocking gather of the contents of all sendbuf
s into all rcevbuf
s on all
processes in the communicator.
Examples
See examples/immediate_all_gather.rs
Standard section(s)
5.12.5
sourcefn immediate_all_gather_varcount_into<'a, S, R, Sc>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R
) -> Request<'a, R, Sc>
fn immediate_all_gather_varcount_into<'a, S, R, Sc>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R ) -> Request<'a, R, Sc>
Initiate non-blocking gather of the contents of all sendbuf
s into all rcevbuf
s on all
processes in the communicator.
Examples
See examples/immediate_all_gather_varcount.rs
Standard section(s)
5.12.5
sourcefn immediate_all_to_all_into<'a, S, R, Sc>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R
) -> Request<'a, R, Sc>
fn immediate_all_to_all_into<'a, S, R, Sc>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R ) -> Request<'a, R, Sc>
Initiate non-blocking all-to-all communication.
Examples
See examples/immediate_all_to_all.rs
Standard section(s)
5.12.6
sourcefn immediate_all_to_all_varcount_into<'a, S, R, Sc>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R
) -> Request<'a, R, Sc>
fn immediate_all_to_all_varcount_into<'a, S, R, Sc>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R ) -> Request<'a, R, Sc>
sourcefn immediate_all_reduce_into<'a, S, R, O, Sc>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R,
op: O
) -> Request<'a, R, Sc>
fn immediate_all_reduce_into<'a, S, R, O, Sc>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R, op: O ) -> Request<'a, R, Sc>
Initiates a non-blocking global reduction under the operation op
of the input data in
sendbuf
and stores the result in recvbuf
on all processes.
Examples
See examples/immediate_reduce.rs
Standard section(s)
5.12.8
sourcefn immediate_reduce_scatter_block_into<'a, S, R, O, Sc>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R,
op: O
) -> Request<'a, R, Sc>
fn immediate_reduce_scatter_block_into<'a, S, R, O, Sc>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R, op: O ) -> Request<'a, R, Sc>
Initiates a non-blocking element-wise global reduction under the operation op
of the
input data in sendbuf
and scatters the result into equal sized blocks in the receive
buffers on all processes.
Examples
See examples/immediate_reduce.rs
Standard section(s)
5.12.9
sourcefn immediate_scan_into<'a, S, R, O, Sc>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R,
op: O
) -> Request<'a, R, Sc>
fn immediate_scan_into<'a, S, R, O, Sc>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R, op: O ) -> Request<'a, R, Sc>
Initiates a non-blocking global inclusive prefix reduction of the data in sendbuf
into
recvbuf
under operation op
.
Examples
See examples/immediate_scan.rs
Standard section(s)
5.12.11
sourcefn immediate_exclusive_scan_into<'a, S, R, O, Sc>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R,
op: O
) -> Request<'a, R, Sc>
fn immediate_exclusive_scan_into<'a, S, R, O, Sc>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R, op: O ) -> Request<'a, R, Sc>
Initiates a non-blocking global exclusive prefix reduction of the data in sendbuf
into
recvbuf
under operation op
.
Examples
See examples/immediate_scan.rs
Standard section(s)
5.12.12