pub trait Destination: AsCommunicator {
Show 17 methods // Required method fn destination_rank(&self) -> Rank; // Provided methods fn send_with_tag<Buf>(&self, buf: &Buf, tag: Tag) where Buf: Buffer + ?Sized { ... } fn send<Buf>(&self, buf: &Buf) where Buf: Buffer + ?Sized { ... } fn buffered_send_with_tag<Buf>(&self, buf: &Buf, tag: Tag) where Buf: Buffer + ?Sized { ... } fn buffered_send<Buf>(&self, buf: &Buf) where Buf: Buffer + ?Sized { ... } fn synchronous_send_with_tag<Buf>(&self, buf: &Buf, tag: Tag) where Buf: Buffer + ?Sized { ... } fn synchronous_send<Buf>(&self, buf: &Buf) where Buf: Buffer + ?Sized { ... } fn ready_send_with_tag<Buf>(&self, buf: &Buf, tag: Tag) where Buf: Buffer + ?Sized { ... } fn ready_send<Buf>(&self, buf: &Buf) where Buf: Buffer + ?Sized { ... } fn immediate_send_with_tag<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf, tag: Tag ) -> Request<'a, Buf, Sc> where Buf: 'a + Buffer + ?Sized, Sc: Scope<'a> { ... } fn immediate_send<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf ) -> Request<'a, Buf, Sc> where Buf: 'a + Buffer + ?Sized, Sc: Scope<'a> { ... } fn immediate_buffered_send_with_tag<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf, tag: Tag ) -> Request<'a, Buf, Sc> where Buf: 'a + Buffer + ?Sized, Sc: Scope<'a> { ... } fn immediate_buffered_send<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf ) -> Request<'a, Buf, Sc> where Buf: 'a + Buffer + ?Sized, Sc: Scope<'a> { ... } fn immediate_synchronous_send_with_tag<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf, tag: Tag ) -> Request<'a, Buf, Sc> where Buf: 'a + Buffer + ?Sized, Sc: Scope<'a> { ... } fn immediate_synchronous_send<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf ) -> Request<'a, Buf, Sc> where Buf: 'a + Buffer + ?Sized, Sc: Scope<'a> { ... } fn immediate_ready_send_with_tag<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf, tag: Tag ) -> Request<'a, Buf, Sc> where Buf: 'a + Buffer + ?Sized, Sc: Scope<'a> { ... } fn immediate_ready_send<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf ) -> Request<'a, Buf, Sc> where Buf: 'a + Buffer + ?Sized, Sc: Scope<'a> { ... }
}
Expand description

Something that can be used as the destination in a point to point send operation

Examples

  • Using a Process as the destination will send data to that specific process.

Standard section(s)

3.2.3

Required Methods§

source

fn destination_rank(&self) -> Rank

Rank that identifies the destination

Provided Methods§

source

fn send_with_tag<Buf>(&self, buf: &Buf, tag: Tag)
where Buf: Buffer + ?Sized,

Blocking standard mode send operation

Send the contents of a Buffer to the Destination &self and tag it.

Standard section(s)

3.2.1

source

fn send<Buf>(&self, buf: &Buf)
where Buf: Buffer + ?Sized,

Blocking standard mode send operation

Send the contents of a Buffer to the Destination &self.

Examples
use mpi::traits::*;

let universe = mpi::initialize().unwrap();
let world = universe.world();

let v = vec![ 1.0f64, 2.0, 3.0 ];
world.process_at_rank(1).send(&v[..]);

See also examples/send_receive.rs

Standard section(s)

3.2.1

source

fn buffered_send_with_tag<Buf>(&self, buf: &Buf, tag: Tag)
where Buf: Buffer + ?Sized,

Blocking buffered mode send operation

Send the contents of a Buffer to the Destination &self and tag it.

Standard section(s)

3.4

source

fn buffered_send<Buf>(&self, buf: &Buf)
where Buf: Buffer + ?Sized,

Blocking buffered mode send operation

Send the contents of a Buffer to the Destination &self.

Standard section(s)

3.4

source

fn synchronous_send_with_tag<Buf>(&self, buf: &Buf, tag: Tag)
where Buf: Buffer + ?Sized,

Blocking synchronous mode send operation

Send the contents of a Buffer to the Destination &self and tag it.

Completes only once the matching receive operation has started.

Standard section(s)

3.4

source

fn synchronous_send<Buf>(&self, buf: &Buf)
where Buf: Buffer + ?Sized,

Blocking synchronous mode send operation

Send the contents of a Buffer to the Destination &self.

Completes only once the matching receive operation has started.

Standard section(s)

3.4

source

fn ready_send_with_tag<Buf>(&self, buf: &Buf, tag: Tag)
where Buf: Buffer + ?Sized,

Blocking ready mode send operation

Send the contents of a Buffer to the Destination &self and tag it.

Fails if the matching receive operation has not been posted.

Standard section(s)

3.4

source

fn ready_send<Buf>(&self, buf: &Buf)
where Buf: Buffer + ?Sized,

Blocking ready mode send operation

Send the contents of a Buffer to the Destination &self.

Fails if the matching receive operation has not been posted.

Standard section(s)

3.4

source

fn immediate_send_with_tag<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf, tag: Tag ) -> Request<'a, Buf, Sc>
where Buf: 'a + Buffer + ?Sized, Sc: Scope<'a>,

Initiate an immediate (non-blocking) standard mode send operation.

Initiate sending the data in buf in standard mode and tag it.

Standard section(s)

3.7.2

source

fn immediate_send<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf ) -> Request<'a, Buf, Sc>
where Buf: 'a + Buffer + ?Sized, Sc: Scope<'a>,

Initiate an immediate (non-blocking) standard mode send operation.

Initiate sending the data in buf in standard mode.

Examples

See examples/immediate.rs

Standard section(s)

3.7.2

source

fn immediate_buffered_send_with_tag<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf, tag: Tag ) -> Request<'a, Buf, Sc>
where Buf: 'a + Buffer + ?Sized, Sc: Scope<'a>,

Initiate an immediate (non-blocking) buffered mode send operation.

Initiate sending the data in buf in buffered mode and tag it.

Standard section(s)

3.7.2

source

fn immediate_buffered_send<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf ) -> Request<'a, Buf, Sc>
where Buf: 'a + Buffer + ?Sized, Sc: Scope<'a>,

Initiate an immediate (non-blocking) buffered mode send operation.

Initiate sending the data in buf in buffered mode.

Standard section(s)

3.7.2

source

fn immediate_synchronous_send_with_tag<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf, tag: Tag ) -> Request<'a, Buf, Sc>
where Buf: 'a + Buffer + ?Sized, Sc: Scope<'a>,

Initiate an immediate (non-blocking) synchronous mode send operation.

Initiate sending the data in buf in synchronous mode and tag it.

Standard section(s)

3.7.2

source

fn immediate_synchronous_send<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf ) -> Request<'a, Buf, Sc>
where Buf: 'a + Buffer + ?Sized, Sc: Scope<'a>,

Initiate an immediate (non-blocking) synchronous mode send operation.

Initiate sending the data in buf in synchronous mode.

Standard section(s)

3.7.2

source

fn immediate_ready_send_with_tag<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf, tag: Tag ) -> Request<'a, Buf, Sc>
where Buf: 'a + Buffer + ?Sized, Sc: Scope<'a>,

Initiate an immediate (non-blocking) ready mode send operation.

Initiate sending the data in buf in ready mode and tag it.

Standard section(s)

3.7.2

source

fn immediate_ready_send<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf ) -> Request<'a, Buf, Sc>
where Buf: 'a + Buffer + ?Sized, Sc: Scope<'a>,

Initiate an immediate (non-blocking) ready mode send operation.

Initiate sending the data in buf in ready mode.

Examples

See examples/immediate.rs

Standard section(s)

3.7.2

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<'a, C> Destination for Process<'a, C>
where C: 'a + Communicator,