Trait mpi::collective::CommunicatorCollectives [] [src]

pub trait CommunicatorCollectives: Communicator {
    fn barrier(&self) { ... }
fn all_gather_into<S: ?Sized, R: ?Sized>(
        &self,
        sendbuf: &S,
        recvbuf: &mut R
    )
    where
        S: Buffer,
        R: BufferMut
, { ... }
fn all_gather_varcount_into<S: ?Sized, R: ?Sized>(
        &self,
        sendbuf: &S,
        recvbuf: &mut R
    )
    where
        S: Buffer,
        R: PartitionedBufferMut
, { ... }
fn all_to_all_into<S: ?Sized, R: ?Sized>(
        &self,
        sendbuf: &S,
        recvbuf: &mut R
    )
    where
        S: Buffer,
        R: BufferMut
, { ... }
fn all_to_all_varcount_into<S: ?Sized, R: ?Sized>(
        &self,
        sendbuf: &S,
        recvbuf: &mut R
    )
    where
        S: PartitionedBuffer,
        R: PartitionedBufferMut
, { ... }
fn all_reduce_into<S: ?Sized, R: ?Sized, O>(
        &self,
        sendbuf: &S,
        recvbuf: &mut R,
        op: O
    )
    where
        S: Buffer,
        R: BufferMut,
        O: Operation
, { ... }
fn reduce_scatter_block_into<S: ?Sized, R: ?Sized, O>(
        &self,
        sendbuf: &S,
        recvbuf: &mut R,
        op: O
    )
    where
        S: Buffer,
        R: BufferMut,
        O: Operation
, { ... }
fn scan_into<S: ?Sized, R: ?Sized, O>(
        &self,
        sendbuf: &S,
        recvbuf: &mut R,
        op: O
    )
    where
        S: Buffer,
        R: BufferMut,
        O: Operation
, { ... }
fn exclusive_scan_into<S: ?Sized, R: ?Sized, O>(
        &self,
        sendbuf: &S,
        recvbuf: &mut R,
        op: O
    )
    where
        S: Buffer,
        R: BufferMut,
        O: Operation
, { ... }
fn immediate_barrier(&self) -> Request<'static, StaticScope> { ... }
fn immediate_all_gather_into<'a, Sc, S: ?Sized, R: ?Sized>(
        &self,
        scope: Sc,
        sendbuf: &'a S,
        recvbuf: &'a mut R
    ) -> Request<'a, Sc>
    where
        S: 'a + Buffer,
        R: 'a + BufferMut,
        Sc: Scope<'a>
, { ... }
fn immediate_all_gather_varcount_into<'a, Sc, S: ?Sized, R: ?Sized>(
        &self,
        scope: Sc,
        sendbuf: &'a S,
        recvbuf: &'a mut R
    ) -> Request<'a, Sc>
    where
        S: 'a + Buffer,
        R: 'a + PartitionedBufferMut,
        Sc: Scope<'a>
, { ... }
fn immediate_all_to_all_into<'a, Sc, S: ?Sized, R: ?Sized>(
        &self,
        scope: Sc,
        sendbuf: &'a S,
        recvbuf: &'a mut R
    ) -> Request<'a, Sc>
    where
        S: 'a + Buffer,
        R: 'a + BufferMut,
        Sc: Scope<'a>
, { ... }
fn immediate_all_to_all_varcount_into<'a, Sc, S: ?Sized, R: ?Sized>(
        &self,
        scope: Sc,
        sendbuf: &'a S,
        recvbuf: &'a mut R
    ) -> Request<'a, Sc>
    where
        S: 'a + PartitionedBuffer,
        R: 'a + PartitionedBufferMut,
        Sc: Scope<'a>
, { ... }
fn immediate_all_reduce_into<'a, Sc, S: ?Sized, R: ?Sized, O>(
        &self,
        scope: Sc,
        sendbuf: &'a S,
        recvbuf: &'a mut R,
        op: O
    ) -> Request<'a, Sc>
    where
        S: 'a + Buffer,
        R: 'a + BufferMut,
        O: 'a + Operation,
        Sc: Scope<'a>
, { ... }
fn immediate_reduce_scatter_block_into<'a, Sc, S: ?Sized, R: ?Sized, O>(
        &self,
        scope: Sc,
        sendbuf: &'a S,
        recvbuf: &'a mut R,
        op: O
    ) -> Request<'a, Sc>
    where
        S: 'a + Buffer,
        R: 'a + BufferMut,
        O: 'a + Operation,
        Sc: Scope<'a>
, { ... }
fn immediate_scan_into<'a, Sc, S: ?Sized, R: ?Sized, O>(
        &self,
        scope: Sc,
        sendbuf: &'a S,
        recvbuf: &'a mut R,
        op: O
    ) -> Request<'a, Sc>
    where
        S: 'a + Buffer,
        R: 'a + BufferMut,
        O: 'a + Operation,
        Sc: Scope<'a>
, { ... }
fn immediate_exclusive_scan_into<'a, Sc, S: ?Sized, R: ?Sized, O>(
        &self,
        scope: Sc,
        sendbuf: &'a S,
        recvbuf: &'a mut R,
        op: O
    ) -> Request<'a, Sc>
    where
        S: 'a + Buffer,
        R: 'a + BufferMut,
        O: 'a + Operation,
        Sc: Scope<'a>
, { ... } }

Collective communication patterns defined on Communicators

Provided Methods

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

Gather contents of buffers on all participating processes.

After the call completes, the contents of the send Buffers on all processes will be concatenated into the receive Buffers on all ranks.

All send Buffers must contain the same count of elements.

Examples

See examples/all_gather.rs

Standard section(s)

5.7

Gather contents of buffers on all participating processes.

After the call completes, the contents of the send Buffers on all processes will be concatenated into the receive Buffers on all ranks.

The send Buffers may contain different counts of elements on different processes. The distribution of elements in the receive Buffers is specified via Partitioned.

Examples

See examples/all_gather_varcount.rs

Standard section(s)

5.7

Distribute the send Buffers from all processes to the receive Buffers 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

Distribute the send Buffers from all processes to the receive Buffers 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

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

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

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

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

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

Initiate non-blocking gather of the contents of all sendbufs into all rcevbufs on all processes in the communicator.

Examples

See examples/immediate_all_gather.rs

Standard section(s)

5.12.5

Initiate non-blocking gather of the contents of all sendbufs into all rcevbufs on all processes in the communicator.

Examples

See examples/immediate_all_gather_varcount.rs

Standard section(s)

5.12.5

Initiate non-blocking all-to-all communication.

Examples

See examples/immediate_all_to_all.rs

Standard section(s)

5.12.6

Initiate non-blocking all-to-all communication.

Standard section(s)

5.12.6

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

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

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

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

Implementors