Struct mpi::topology::Process

source ·
pub struct Process<'a, C>
where C: 'a + Communicator,
{ /* private fields */ }
Expand description

Identifies a process by its Rank within a certain communicator.

Implementations§

source§

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

source

pub fn rank(&self) -> Rank

The process rank

Trait Implementations§

source§

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

§

type Out = C

The type of the associated communicator
source§

fn as_communicator(&self) -> &Self::Out

Returns the associated communicator.
source§

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

source§

fn clone(&self) -> Process<'a, C>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

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

source§

fn destination_rank(&self) -> Rank

Rank that identifies the destination
source§

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

Blocking standard mode send operation Read more
source§

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

Blocking standard mode send operation Read more
source§

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

Blocking buffered mode send operation Read more
source§

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

Blocking buffered mode send operation Read more
source§

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

Blocking synchronous mode send operation Read more
source§

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

Blocking synchronous mode send operation Read more
source§

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

Blocking ready mode send operation Read more
source§

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

Blocking ready mode send operation Read more
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. Read more
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. Read more
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. Read more
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. Read more
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. Read more
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. Read more
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. Read more
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. Read more
source§

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

source§

fn root_rank(&self) -> Rank

Rank of the root process
source§

fn broadcast_into<Buf>(&self, buffer: &mut Buf)
where Buf: BufferMut + ?Sized,

Broadcast of the contents of a buffer Read more
source§

fn gather_into<S>(&self, sendbuf: &S)
where S: Buffer + ?Sized,

Gather contents of buffers on Root. Read more
source§

fn gather_into_root<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
where S: Buffer + ?Sized, R: BufferMut + ?Sized,

Gather contents of buffers on Root. Read more
source§

fn gather_varcount_into<S>(&self, sendbuf: &S)
where S: Buffer + ?Sized,

Gather contents of buffers on Root. Read more
source§

fn gather_varcount_into_root<S, R>(&self, sendbuf: &S, recvbuf: &mut R)

Gather contents of buffers on Root. Read more
source§

fn scatter_into<R>(&self, recvbuf: &mut R)
where R: BufferMut + ?Sized,

Scatter contents of a buffer on the root process to all processes. Read more
source§

fn scatter_into_root<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
where S: Buffer + ?Sized, R: BufferMut + ?Sized,

Scatter contents of a buffer on the root process to all processes. Read more
source§

fn scatter_varcount_into<R>(&self, recvbuf: &mut R)
where R: BufferMut + ?Sized,

Scatter contents of a buffer on the root process to all processes. Read more
source§

fn scatter_varcount_into_root<S, R>(&self, sendbuf: &S, recvbuf: &mut R)

Scatter contents of a buffer on the root process to all processes. Read more
source§

fn reduce_into<S, O>(&self, sendbuf: &S, op: O)
where S: Buffer + ?Sized, O: Operation,

Performs a global reduction under the operation op of the input data in sendbuf and stores the result on the Root process. Read more
source§

fn reduce_into_root<S, R, O>(&self, sendbuf: &S, recvbuf: &mut R, op: O)
where S: Buffer + ?Sized, R: BufferMut + ?Sized, O: Operation,

Performs a global reduction under the operation op of the input data in sendbuf and stores the result on the Root process. Read more
source§

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

Initiate broadcast of a value from the Root process to all other processes. Read more
source§

fn immediate_gather_into<'a, S, Sc>( &self, scope: Sc, sendbuf: &'a S ) -> Request<'a, S, Sc>
where S: 'a + Buffer + ?Sized, Sc: Scope<'a>,

Initiate non-blocking gather of the contents of all sendbufs on Root &self. Read more
source§

fn immediate_gather_into_root<'a, S, R, Sc>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R ) -> Request<'a, R, Sc>
where S: 'a + Buffer + ?Sized, R: 'a + BufferMut + ?Sized, Sc: Scope<'a>,

Initiate non-blocking gather of the contents of all sendbufs on Root &self. Read more
source§

fn immediate_gather_varcount_into<'a, Sc, S>( &self, scope: Sc, sendbuf: &'a S ) -> Request<'a, S, Sc>
where S: 'a + Buffer + ?Sized, Sc: Scope<'a>,

Initiate non-blocking gather of the contents of all sendbufs on Root &self. Read more
source§

fn immediate_gather_varcount_into_root<'a, Sc, S, R>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R ) -> Request<'a, R, Sc>
where S: 'a + Buffer + ?Sized, R: 'a + PartitionedBufferMut + ?Sized, Sc: Scope<'a>,

Initiate non-blocking gather of the contents of all sendbufs on Root &self. Read more
source§

fn immediate_scatter_into<'a, Sc, R>( &self, scope: Sc, recvbuf: &'a mut R ) -> Request<'a, R, Sc>
where R: 'a + BufferMut + ?Sized, Sc: Scope<'a>,

Initiate non-blocking scatter of the contents of sendbuf from Root &self. Read more
source§

fn immediate_scatter_into_root<'a, Sc, S, R>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R ) -> Request<'a, R, Sc>
where S: 'a + Buffer + ?Sized, R: 'a + BufferMut + ?Sized, Sc: Scope<'a>,

Initiate non-blocking scatter of the contents of sendbuf from Root &self. Read more
source§

fn immediate_scatter_varcount_into<'a, Sc, R>( &self, scope: Sc, recvbuf: &'a mut R ) -> Request<'a, R, Sc>
where R: 'a + BufferMut + ?Sized, Sc: Scope<'a>,

Initiate non-blocking scatter of the contents of sendbuf from Root &self. Read more
source§

fn immediate_scatter_varcount_into_root<'a, Sc, S, R>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R ) -> Request<'a, R, Sc>
where S: 'a + PartitionedBuffer + ?Sized, R: 'a + BufferMut + ?Sized, Sc: Scope<'a>,

Initiate non-blocking scatter of the contents of sendbuf from Root &self. Read more
source§

fn immediate_reduce_into<'a, Sc, S, O>( &self, scope: Sc, sendbuf: &'a S, op: O ) -> Request<'a, S, Sc>
where S: 'a + Buffer + ?Sized, O: 'a + Operation, Sc: Scope<'a>,

Initiates a non-blacking global reduction under the operation op of the input data in sendbuf and stores the result on the Root process. Read more
source§

fn immediate_reduce_into_root<'a, Sc, S, R, O>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R, op: O ) -> Request<'a, R, Sc>
where S: 'a + Buffer + ?Sized, R: 'a + BufferMut + ?Sized, O: 'a + Operation, Sc: Scope<'a>,

Initiates a non-blocking global reduction under the operation op of the input data in sendbuf and stores the result on the Root process. Read more
source§

fn spawn( &self, command: &Command, maxprocs: Rank ) -> Result<InterCommunicator, MpiError>

Spawns child processes Read more
source§

fn spawn_multiple( &self, commands: &[Command], maxprocs: &[Rank] ) -> Result<InterCommunicator, MpiError>

Spawns child processes Read more
source§

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

source§

fn source_rank(&self) -> Rank

Rank that identifies the source
source§

fn probe_with_tag(&self, tag: Tag) -> Status

Probe a source for incoming messages. Read more
source§

fn probe(&self) -> Status

Probe a source for incoming messages. Read more
source§

fn matched_probe_with_tag(&self, tag: Tag) -> (Message, Status)

Probe a source for incoming messages with guaranteed reception. Read more
source§

fn matched_probe(&self) -> (Message, Status)

Probe a source for incoming messages with guaranteed reception. Read more
source§

fn receive_with_tag<Msg>(&self, tag: Tag) -> (Msg, Status)
where Msg: Equivalence,

Receive a message containing a single instance of type Msg. Read more
source§

fn receive<Msg>(&self) -> (Msg, Status)
where Msg: Equivalence,

Receive a message containing a single instance of type Msg. Read more
source§

fn receive_into_with_tag<Buf>(&self, buf: &mut Buf, tag: Tag) -> Status
where Buf: BufferMut + ?Sized,

Receive a message into a Buffer. Read more
source§

fn receive_into<Buf>(&self, buf: &mut Buf) -> Status
where Buf: BufferMut + ?Sized,

Receive a message into a Buffer. Read more
source§

fn receive_vec_with_tag<Msg>(&self, tag: Tag) -> (Vec<Msg>, Status)
where Msg: Equivalence,

Receive a message containing multiple instances of type Msg into a Vec. Read more
source§

fn receive_vec<Msg>(&self) -> (Vec<Msg>, Status)
where Msg: Equivalence,

Receive a message containing multiple instances of type Msg into a Vec. Read more
source§

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

Initiate an immediate (non-blocking) receive operation. Read more
source§

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

Initiate an immediate (non-blocking) receive operation. Read more
source§

fn immediate_receive_with_tag<Msg>(&self, tag: Tag) -> ReceiveFuture<Msg>
where Msg: Equivalence,

Initiate a non-blocking receive operation for messages matching tag tag. Read more
source§

fn immediate_receive<Msg>(&self) -> ReceiveFuture<Msg>
where Msg: Equivalence,

Initiate a non-blocking receive operation. Read more
source§

fn immediate_probe_with_tag(&self, tag: Tag) -> Option<Status>

Asynchronously probe a source for incoming messages. Read more
source§

fn immediate_probe(&self) -> Option<Status>

Asynchronously probe a source for incoming messages. Read more
source§

fn immediate_matched_probe_with_tag( &self, tag: Tag ) -> Option<(Message, Status)>

Asynchronously probe a source for incoming messages with guaranteed reception. Read more
source§

fn immediate_matched_probe(&self) -> Option<(Message, Status)>

Asynchronously probe a source for incoming messages with guaranteed reception. Read more
source§

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

Auto Trait Implementations§

§

impl<'a, C> RefUnwindSafe for Process<'a, C>
where C: RefUnwindSafe,

§

impl<'a, C> Send for Process<'a, C>
where C: Sync,

§

impl<'a, C> Sync for Process<'a, C>
where C: Sync,

§

impl<'a, C> Unpin for Process<'a, C>

§

impl<'a, C> UnwindSafe for Process<'a, C>
where C: RefUnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<Src, Scheme> ApproxFrom<Src, Scheme> for Src
where Scheme: ApproxScheme,

§

type Err = NoError

The error type produced by a failed conversion.
source§

fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>

Convert the given value into an approximately equivalent representation.
source§

impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Src
where Dst: ApproxFrom<Src, Scheme>, Scheme: ApproxScheme,

§

type Err = <Dst as ApproxFrom<Src, Scheme>>::Err

The error type produced by a failed conversion.
source§

fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>

Convert the subject into an approximately equivalent representation.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T, Dst> ConvAsUtil<Dst> for T

source§

fn approx(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst>,

Approximate the subject with the default scheme.
source§

fn approx_by<Scheme>(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst, Scheme>, Scheme: ApproxScheme,

Approximate the subject with a specific scheme.
source§

impl<T> ConvUtil for T

source§

fn approx_as<Dst>(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst>,

Approximate the subject to a given type with the default scheme.
source§

fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst, Scheme>, Scheme: ApproxScheme,

Approximate the subject to a given type with a specific scheme.
source§

fn into_as<Dst>(self) -> Dst
where Self: Sized + Into<Dst>,

Convert the subject to a given type.
source§

fn try_as<Dst>(self) -> Result<Dst, Self::Err>
where Self: Sized + TryInto<Dst>,

Attempt to convert the subject to a given type.
source§

fn value_as<Dst>(self) -> Result<Dst, Self::Err>
where Self: Sized + ValueInto<Dst>,

Attempt a value conversion of the subject to a given type.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<Src> TryFrom<Src> for Src

§

type Err = NoError

The error type produced by a failed conversion.
source§

fn try_from(src: Src) -> Result<Src, <Src as TryFrom<Src>>::Err>

Convert the given value into the subject type.
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<Src, Dst> TryInto<Dst> for Src
where Dst: TryFrom<Src>,

§

type Err = <Dst as TryFrom<Src>>::Err

The error type produced by a failed conversion.
source§

fn try_into(self) -> Result<Dst, <Src as TryInto<Dst>>::Err>

Convert the subject into the destination type.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<Src> ValueFrom<Src> for Src

§

type Err = NoError

The error type produced by a failed conversion.
source§

fn value_from(src: Src) -> Result<Src, <Src as ValueFrom<Src>>::Err>

Convert the given value into an exactly equivalent representation.
source§

impl<Src, Dst> ValueInto<Dst> for Src
where Dst: ValueFrom<Src>,

§

type Err = <Dst as ValueFrom<Src>>::Err

The error type produced by a failed conversion.
source§

fn value_into(self) -> Result<Dst, <Src as ValueInto<Dst>>::Err>

Convert the subject into an exactly equivalent representation.