Trait mpi::point_to_point::Destination
[−]
[src]
pub trait Destination: AsCommunicator { fn destination_rank(&self) -> Rank; fn send_with_tag<Buf: ?Sized>(&self, buf: &Buf, tag: Tag)
where
Buf: Buffer, { ... } fn send<Buf: ?Sized>(&self, buf: &Buf)
where
Buf: Buffer, { ... } fn buffered_send_with_tag<Buf: ?Sized>(&self, buf: &Buf, tag: Tag)
where
Buf: Buffer, { ... } fn buffered_send<Buf: ?Sized>(&self, buf: &Buf)
where
Buf: Buffer, { ... } fn synchronous_send_with_tag<Buf: ?Sized>(&self, buf: &Buf, tag: Tag)
where
Buf: Buffer, { ... } fn synchronous_send<Buf: ?Sized>(&self, buf: &Buf)
where
Buf: Buffer, { ... } fn ready_send_with_tag<Buf: ?Sized>(&self, buf: &Buf, tag: Tag)
where
Buf: Buffer, { ... } fn ready_send<Buf: ?Sized>(&self, buf: &Buf)
where
Buf: Buffer, { ... } fn immediate_send_with_tag<'a, Sc, Buf: ?Sized>(
&self,
scope: Sc,
buf: &'a Buf,
tag: Tag
) -> Request<'a, Sc>
where
Buf: 'a + Buffer,
Sc: Scope<'a>, { ... } fn immediate_send<'a, Sc, Buf: ?Sized>(
&self,
scope: Sc,
buf: &'a Buf
) -> Request<'a, Sc>
where
Buf: 'a + Buffer,
Sc: Scope<'a>, { ... } fn immediate_buffered_send_with_tag<'a, Sc, Buf: ?Sized>(
&self,
scope: Sc,
buf: &'a Buf,
tag: Tag
) -> Request<'a, Sc>
where
Buf: 'a + Buffer,
Sc: Scope<'a>, { ... } fn immediate_buffered_send<'a, Sc, Buf: ?Sized>(
&self,
scope: Sc,
buf: &'a Buf
) -> Request<'a, Sc>
where
Buf: 'a + Buffer,
Sc: Scope<'a>, { ... } fn immediate_synchronous_send_with_tag<'a, Sc, Buf: ?Sized>(
&self,
scope: Sc,
buf: &'a Buf,
tag: Tag
) -> Request<'a, Sc>
where
Buf: 'a + Buffer,
Sc: Scope<'a>, { ... } fn immediate_synchronous_send<'a, Sc, Buf: ?Sized>(
&self,
scope: Sc,
buf: &'a Buf
) -> Request<'a, Sc>
where
Buf: 'a + Buffer,
Sc: Scope<'a>, { ... } fn immediate_ready_send_with_tag<'a, Sc, Buf: ?Sized>(
&self,
scope: Sc,
buf: &'a Buf,
tag: Tag
) -> Request<'a, Sc>
where
Buf: 'a + Buffer,
Sc: Scope<'a>, { ... } fn immediate_ready_send<'a, Sc, Buf: ?Sized>(
&self,
scope: Sc,
buf: &'a Buf
) -> Request<'a, Sc>
where
Buf: 'a + Buffer,
Sc: Scope<'a>, { ... } }
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
fn destination_rank(&self) -> Rank
Rank
that identifies the destination
Provided Methods
fn send_with_tag<Buf: ?Sized>(&self, buf: &Buf, tag: Tag) where
Buf: Buffer,
Buf: Buffer,
Blocking standard mode send operation
Send the contents of a Buffer
to the Destination
&self
and tag it.
Standard section(s)
3.2.1
fn send<Buf: ?Sized>(&self, buf: &Buf) where
Buf: Buffer,
Buf: Buffer,
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
fn buffered_send_with_tag<Buf: ?Sized>(&self, buf: &Buf, tag: Tag) where
Buf: Buffer,
Buf: Buffer,
Blocking buffered mode send operation
Send the contents of a Buffer
to the Destination
&self
and tag it.
Standard section(s)
3.4
fn buffered_send<Buf: ?Sized>(&self, buf: &Buf) where
Buf: Buffer,
Buf: Buffer,
Blocking buffered mode send operation
Send the contents of a Buffer
to the Destination
&self
.
Standard section(s)
3.4
fn synchronous_send_with_tag<Buf: ?Sized>(&self, buf: &Buf, tag: Tag) where
Buf: Buffer,
Buf: Buffer,
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
fn synchronous_send<Buf: ?Sized>(&self, buf: &Buf) where
Buf: Buffer,
Buf: Buffer,
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
fn ready_send_with_tag<Buf: ?Sized>(&self, buf: &Buf, tag: Tag) where
Buf: Buffer,
Buf: Buffer,
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
fn ready_send<Buf: ?Sized>(&self, buf: &Buf) where
Buf: Buffer,
Buf: Buffer,
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
fn immediate_send_with_tag<'a, Sc, Buf: ?Sized>(
&self,
scope: Sc,
buf: &'a Buf,
tag: Tag
) -> Request<'a, Sc> where
Buf: 'a + Buffer,
Sc: Scope<'a>,
&self,
scope: Sc,
buf: &'a Buf,
tag: Tag
) -> Request<'a, Sc> where
Buf: 'a + Buffer,
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
fn immediate_send<'a, Sc, Buf: ?Sized>(
&self,
scope: Sc,
buf: &'a Buf
) -> Request<'a, Sc> where
Buf: 'a + Buffer,
Sc: Scope<'a>,
&self,
scope: Sc,
buf: &'a Buf
) -> Request<'a, Sc> where
Buf: 'a + Buffer,
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
fn immediate_buffered_send_with_tag<'a, Sc, Buf: ?Sized>(
&self,
scope: Sc,
buf: &'a Buf,
tag: Tag
) -> Request<'a, Sc> where
Buf: 'a + Buffer,
Sc: Scope<'a>,
&self,
scope: Sc,
buf: &'a Buf,
tag: Tag
) -> Request<'a, Sc> where
Buf: 'a + Buffer,
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
fn immediate_buffered_send<'a, Sc, Buf: ?Sized>(
&self,
scope: Sc,
buf: &'a Buf
) -> Request<'a, Sc> where
Buf: 'a + Buffer,
Sc: Scope<'a>,
&self,
scope: Sc,
buf: &'a Buf
) -> Request<'a, Sc> where
Buf: 'a + Buffer,
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
fn immediate_synchronous_send_with_tag<'a, Sc, Buf: ?Sized>(
&self,
scope: Sc,
buf: &'a Buf,
tag: Tag
) -> Request<'a, Sc> where
Buf: 'a + Buffer,
Sc: Scope<'a>,
&self,
scope: Sc,
buf: &'a Buf,
tag: Tag
) -> Request<'a, Sc> where
Buf: 'a + Buffer,
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
fn immediate_synchronous_send<'a, Sc, Buf: ?Sized>(
&self,
scope: Sc,
buf: &'a Buf
) -> Request<'a, Sc> where
Buf: 'a + Buffer,
Sc: Scope<'a>,
&self,
scope: Sc,
buf: &'a Buf
) -> Request<'a, Sc> where
Buf: 'a + Buffer,
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
fn immediate_ready_send_with_tag<'a, Sc, Buf: ?Sized>(
&self,
scope: Sc,
buf: &'a Buf,
tag: Tag
) -> Request<'a, Sc> where
Buf: 'a + Buffer,
Sc: Scope<'a>,
&self,
scope: Sc,
buf: &'a Buf,
tag: Tag
) -> Request<'a, Sc> where
Buf: 'a + Buffer,
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
fn immediate_ready_send<'a, Sc, Buf: ?Sized>(
&self,
scope: Sc,
buf: &'a Buf
) -> Request<'a, Sc> where
Buf: 'a + Buffer,
Sc: Scope<'a>,
&self,
scope: Sc,
buf: &'a Buf
) -> Request<'a, Sc> where
Buf: 'a + Buffer,
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
Implementors
impl<'a, C> Destination for Process<'a, C> where
C: 'a + Communicator,