Trait mpi::point_to_point::Destination
source · 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§
sourcefn destination_rank(&self) -> Rank
fn destination_rank(&self) -> Rank
Rank
that identifies the destination
Provided Methods§
sourcefn send_with_tag<Buf>(&self, buf: &Buf, tag: Tag)
fn send_with_tag<Buf>(&self, buf: &Buf, tag: Tag)
Blocking standard mode send operation
Send the contents of a Buffer
to the Destination
&self
and tag it.
Standard section(s)
3.2.1
sourcefn send<Buf>(&self, buf: &Buf)
fn send<Buf>(&self, buf: &Buf)
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
sourcefn buffered_send_with_tag<Buf>(&self, buf: &Buf, tag: Tag)
fn buffered_send_with_tag<Buf>(&self, buf: &Buf, tag: Tag)
Blocking buffered mode send operation
Send the contents of a Buffer
to the Destination
&self
and tag it.
Standard section(s)
3.4
sourcefn buffered_send<Buf>(&self, buf: &Buf)
fn buffered_send<Buf>(&self, buf: &Buf)
Blocking buffered mode send operation
Send the contents of a Buffer
to the Destination
&self
.
Standard section(s)
3.4
sourcefn synchronous_send_with_tag<Buf>(&self, buf: &Buf, tag: Tag)
fn synchronous_send_with_tag<Buf>(&self, buf: &Buf, tag: Tag)
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
sourcefn synchronous_send<Buf>(&self, buf: &Buf)
fn synchronous_send<Buf>(&self, buf: &Buf)
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
sourcefn ready_send_with_tag<Buf>(&self, buf: &Buf, tag: Tag)
fn ready_send_with_tag<Buf>(&self, buf: &Buf, tag: Tag)
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
sourcefn ready_send<Buf>(&self, buf: &Buf)
fn ready_send<Buf>(&self, buf: &Buf)
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
sourcefn immediate_send_with_tag<'a, Sc, Buf>(
&self,
scope: Sc,
buf: &'a Buf,
tag: Tag
) -> Request<'a, Buf, Sc>
fn immediate_send_with_tag<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf, tag: Tag ) -> Request<'a, Buf, Sc>
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
sourcefn immediate_send<'a, Sc, Buf>(
&self,
scope: Sc,
buf: &'a Buf
) -> Request<'a, Buf, Sc>
fn immediate_send<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf ) -> Request<'a, Buf, Sc>
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
sourcefn immediate_buffered_send_with_tag<'a, Sc, Buf>(
&self,
scope: Sc,
buf: &'a Buf,
tag: Tag
) -> Request<'a, Buf, Sc>
fn immediate_buffered_send_with_tag<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf, tag: Tag ) -> Request<'a, Buf, Sc>
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
sourcefn immediate_buffered_send<'a, Sc, Buf>(
&self,
scope: Sc,
buf: &'a Buf
) -> Request<'a, Buf, Sc>
fn immediate_buffered_send<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf ) -> Request<'a, Buf, Sc>
Initiate an immediate (non-blocking) buffered mode send operation.
Initiate sending the data in buf
in buffered mode.
Standard section(s)
3.7.2
sourcefn immediate_synchronous_send_with_tag<'a, Sc, Buf>(
&self,
scope: Sc,
buf: &'a Buf,
tag: Tag
) -> Request<'a, Buf, Sc>
fn immediate_synchronous_send_with_tag<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf, tag: Tag ) -> Request<'a, Buf, Sc>
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
sourcefn immediate_synchronous_send<'a, Sc, Buf>(
&self,
scope: Sc,
buf: &'a Buf
) -> Request<'a, Buf, Sc>
fn immediate_synchronous_send<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf ) -> Request<'a, Buf, Sc>
Initiate an immediate (non-blocking) synchronous mode send operation.
Initiate sending the data in buf
in synchronous mode.
Standard section(s)
3.7.2
sourcefn immediate_ready_send_with_tag<'a, Sc, Buf>(
&self,
scope: Sc,
buf: &'a Buf,
tag: Tag
) -> Request<'a, Buf, Sc>
fn immediate_ready_send_with_tag<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf, tag: Tag ) -> Request<'a, Buf, Sc>
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
sourcefn immediate_ready_send<'a, Sc, Buf>(
&self,
scope: Sc,
buf: &'a Buf
) -> Request<'a, Buf, Sc>
fn immediate_ready_send<'a, Sc, Buf>( &self, scope: Sc, buf: &'a Buf ) -> Request<'a, Buf, Sc>
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