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<'b, Buf: ?Sized>(&self,
buf: &'b Buf,
tag: Tag)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer { ... } fn immediate_send<'b, Buf: ?Sized>(&self,
buf: &'b Buf)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer { ... } fn immediate_buffered_send_with_tag<'b, Buf: ?Sized>(&self,
buf: &'b Buf,
tag: Tag)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer { ... } fn immediate_buffered_send<'b, Buf: ?Sized>(&self,
buf: &'b Buf)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer { ... } fn immediate_synchronous_send_with_tag<'b, Buf: ?Sized>(&self,
buf: &'b Buf,
tag: Tag)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer { ... } fn immediate_synchronous_send<'b, Buf: ?Sized>(&self,
buf: &'b Buf)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer { ... } fn immediate_ready_send_with_tag<'b, Buf: ?Sized>(&self,
buf: &'b Buf,
tag: Tag)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer { ... } fn immediate_ready_send<'b, Buf: ?Sized>(&self,
buf: &'b Buf)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer { ... } }
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
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
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
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
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
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
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
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
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<'b, Buf: ?Sized>(&self,
buf: &'b Buf,
tag: Tag)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer
buf: &'b Buf,
tag: Tag)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer
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<'b, Buf: ?Sized>(&self, buf: &'b Buf) -> ReadRequest<'b, Buf> where Buf: 'b + Buffer
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<'b, Buf: ?Sized>(&self,
buf: &'b Buf,
tag: Tag)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer
buf: &'b Buf,
tag: Tag)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer
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<'b, Buf: ?Sized>(&self,
buf: &'b Buf)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer
buf: &'b Buf)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer
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<'b, Buf: ?Sized>(&self,
buf: &'b Buf,
tag: Tag)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer
buf: &'b Buf,
tag: Tag)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer
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<'b, Buf: ?Sized>(&self,
buf: &'b Buf)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer
buf: &'b Buf)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer
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<'b, Buf: ?Sized>(&self,
buf: &'b Buf,
tag: Tag)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer
buf: &'b Buf,
tag: Tag)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer
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<'b, Buf: ?Sized>(&self,
buf: &'b Buf)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer
buf: &'b Buf)
-> ReadRequest<'b, Buf> where Buf: 'b + Buffer
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