pub struct SystemCommunicator(/* private fields */);
Expand description
Implementations§
Source§impl SystemCommunicator
impl SystemCommunicator
Sourcepub fn world() -> SystemCommunicator
pub fn world() -> SystemCommunicator
The ‘world communicator’
Contains all processes initially partaking in the computation.
§Examples
See examples/simple.rs
Trait Implementations§
Source§impl AsCommunicator for SystemCommunicator
impl AsCommunicator for SystemCommunicator
Source§type Out = SystemCommunicator
type Out = SystemCommunicator
The type of the associated communicator
Source§fn as_communicator(&self) -> &Self::Out
fn as_communicator(&self) -> &Self::Out
Returns the associated communicator.
Source§impl AsRaw for SystemCommunicator
impl AsRaw for SystemCommunicator
Source§impl Clone for SystemCommunicator
impl Clone for SystemCommunicator
Source§fn clone(&self) -> SystemCommunicator
fn clone(&self) -> SystemCommunicator
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Communicator for SystemCommunicator
impl Communicator for SystemCommunicator
Source§fn rank(&self) -> Rank
fn rank(&self) -> Rank
The
Rank
that identifies the calling process within this communicator Read moreSource§fn any_process(&self) -> AnyProcess<'_, Self>where
Self: Sized,
fn any_process(&self) -> AnyProcess<'_, Self>where
Self: Sized,
Returns an
AnyProcess
identifier that can be used, e.g. as a Source
in point to point
communication.Source§fn this_process(&self) -> Process<'_, Self>where
Self: Sized,
fn this_process(&self) -> Process<'_, Self>where
Self: Sized,
A
Process
for the calling processSource§fn compare<C>(&self, other: &C) -> CommunicatorRelationwhere
C: Communicator + ?Sized,
fn compare<C>(&self, other: &C) -> CommunicatorRelationwhere
C: Communicator + ?Sized,
Compare two communicators. Read more
Source§fn duplicate(&self) -> UserCommunicator
fn duplicate(&self) -> UserCommunicator
Duplicate a communicator. Read more
Source§fn split_by_color(&self, color: Color) -> Option<UserCommunicator>
fn split_by_color(&self, color: Color) -> Option<UserCommunicator>
Split a communicator by color. Read more
Source§fn split_by_color_with_key(
&self,
color: Color,
key: Key,
) -> Option<UserCommunicator>
fn split_by_color_with_key( &self, color: Color, key: Key, ) -> Option<UserCommunicator>
Split a communicator by color. Read more
Split the communicator into subcommunicators, each of which can create a shared memory
region. Read more
Source§fn split_by_subgroup_collective<G>(&self, group: &G) -> Option<UserCommunicator>
fn split_by_subgroup_collective<G>(&self, group: &G) -> Option<UserCommunicator>
Split a communicator collectively by subgroup. Read more
Source§fn split_by_subgroup<G>(&self, group: &G) -> Option<UserCommunicator>
fn split_by_subgroup<G>(&self, group: &G) -> Option<UserCommunicator>
Split a communicator by subgroup. Read more
Source§fn split_by_subgroup_with_tag<G>(
&self,
group: &G,
tag: Tag,
) -> Option<UserCommunicator>
fn split_by_subgroup_with_tag<G>( &self, group: &G, tag: Tag, ) -> Option<UserCommunicator>
Split a communicator by subgroup Read more
Source§fn create_cartesian_communicator(
&self,
dims: &[Count],
periods: &[bool],
reorder: bool,
) -> Option<CartesianCommunicator>
fn create_cartesian_communicator( &self, dims: &[Count], periods: &[bool], reorder: bool, ) -> Option<CartesianCommunicator>
Creates a communicator with ranks laid out in a multi-dimensional space, allowing for easy
neighbor-to-neighbor communication, while providing MPI with information to allow it to
better optimize the physical locality of ranks that are logically close. Read more
Source§fn cartesian_map(&self, dims: &[Count], periods: &[bool]) -> Option<Rank>
fn cartesian_map(&self, dims: &[Count], periods: &[bool]) -> Option<Rank>
Gets the target rank of this rank as-if
create_cartesian_communicator
had been called
with dims
, periods
, and reorder = true
. Read moreSource§fn pack_size<Dt>(&self, incount: Count, datatype: &Dt) -> Countwhere
Dt: Datatype,
fn pack_size<Dt>(&self, incount: Count, datatype: &Dt) -> Countwhere
Dt: Datatype,
Gets the implementation-defined buffer size required to pack ‘incount’ elements of type
‘datatype’. Read more
Source§fn pack<Buf>(&self, inbuf: &Buf) -> Vec<u8> ⓘ
fn pack<Buf>(&self, inbuf: &Buf) -> Vec<u8> ⓘ
Packs inbuf into a byte array with an implementation-defined format. Often paired with
unpack
to convert back into a specific datatype. Read moreSource§impl Debug for SystemCommunicator
impl Debug for SystemCommunicator
impl Copy for SystemCommunicator
Auto Trait Implementations§
impl Freeze for SystemCommunicator
impl RefUnwindSafe for SystemCommunicator
impl !Send for SystemCommunicator
impl !Sync for SystemCommunicator
impl Unpin for SystemCommunicator
impl UnwindSafe for SystemCommunicator
Blanket Implementations§
Source§impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
Source§fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
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 Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
Source§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
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>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
Convert the subject into an approximately equivalent representation.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<C> CommunicatorCollectives for Cwhere
C: Communicator,
impl<C> CommunicatorCollectives for Cwhere
C: Communicator,
Source§fn all_gather_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
fn all_gather_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
Gather contents of buffers on all participating processes. Read more
Source§fn all_gather_varcount_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
fn all_gather_varcount_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
Gather contents of buffers on all participating processes. Read more
Source§fn all_to_all_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
fn all_to_all_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
Source§fn all_to_all_varcount_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
fn all_to_all_varcount_into<S, R>(&self, sendbuf: &S, recvbuf: &mut R)
Source§fn all_reduce_into<S, R, O>(&self, sendbuf: &S, recvbuf: &mut R, op: O)
fn all_reduce_into<S, R, O>(&self, sendbuf: &S, recvbuf: &mut R, op: O)
Performs a global reduction under the operation
op
of the input data in sendbuf
and
stores the result in recvbuf
on all processes. Read moreSource§fn reduce_scatter_block_into<S, R, O>(
&self,
sendbuf: &S,
recvbuf: &mut R,
op: O,
)
fn reduce_scatter_block_into<S, R, O>( &self, sendbuf: &S, recvbuf: &mut R, op: O, )
Performs an element-wise global reduction under the operation
op
of the input data in
sendbuf
and scatters the result into equal sized blocks in the receive buffers on all
processes. Read moreSource§fn scan_into<S, R, O>(&self, sendbuf: &S, recvbuf: &mut R, op: O)
fn scan_into<S, R, O>(&self, sendbuf: &S, recvbuf: &mut R, op: O)
Performs a global inclusive prefix reduction of the data in
sendbuf
into recvbuf
under
operation op
. Read moreSource§fn exclusive_scan_into<S, R, O>(&self, sendbuf: &S, recvbuf: &mut R, op: O)
fn exclusive_scan_into<S, R, O>(&self, sendbuf: &S, recvbuf: &mut R, op: O)
Performs a global exclusive prefix reduction of the data in
sendbuf
into recvbuf
under
operation op
. Read moreSource§fn immediate_barrier(&self) -> Request<'static>
fn immediate_barrier(&self) -> Request<'static>
Non-blocking barrier synchronization among all processes in a
Communicator
Read moreSource§fn immediate_all_gather_into<'a, Sc, S, R>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R,
) -> Request<'a, Sc>
fn immediate_all_gather_into<'a, Sc, S, R>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R, ) -> Request<'a, Sc>
Initiate non-blocking gather of the contents of all
sendbuf
s into all rcevbuf
s on all
processes in the communicator. Read moreSource§fn immediate_all_gather_varcount_into<'a, Sc, S, R>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R,
) -> Request<'a, Sc>
fn immediate_all_gather_varcount_into<'a, Sc, S, R>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R, ) -> Request<'a, Sc>
Initiate non-blocking gather of the contents of all
sendbuf
s into all rcevbuf
s on all
processes in the communicator. Read moreSource§fn immediate_all_to_all_into<'a, Sc, S, R>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R,
) -> Request<'a, Sc>
fn immediate_all_to_all_into<'a, Sc, S, R>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R, ) -> Request<'a, Sc>
Initiate non-blocking all-to-all communication. Read more
Source§fn immediate_all_to_all_varcount_into<'a, Sc, S, R>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R,
) -> Request<'a, Sc>
fn immediate_all_to_all_varcount_into<'a, Sc, S, R>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R, ) -> Request<'a, Sc>
Initiate non-blocking all-to-all communication. Read more
Source§fn immediate_all_reduce_into<'a, Sc, S, R, O>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R,
op: O,
) -> Request<'a, Sc>
fn immediate_all_reduce_into<'a, Sc, S, R, O>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R, op: O, ) -> Request<'a, Sc>
Initiates a non-blocking global reduction under the operation
op
of the input data in
sendbuf
and stores the result in recvbuf
on all processes. Read moreSource§fn immediate_reduce_scatter_block_into<'a, Sc, S, R, O>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R,
op: O,
) -> Request<'a, Sc>
fn immediate_reduce_scatter_block_into<'a, Sc, S, R, O>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R, op: O, ) -> Request<'a, Sc>
Initiates a non-blocking element-wise global reduction under the operation
op
of the
input data in sendbuf
and scatters the result into equal sized blocks in the receive
buffers on all processes. Read moreSource§fn immediate_scan_into<'a, Sc, S, R, O>(
&self,
scope: Sc,
sendbuf: &'a S,
recvbuf: &'a mut R,
op: O,
) -> Request<'a, Sc>
fn immediate_scan_into<'a, Sc, S, R, O>( &self, scope: Sc, sendbuf: &'a S, recvbuf: &'a mut R, op: O, ) -> Request<'a, Sc>
Initiates a non-blocking global inclusive prefix reduction of the data in
sendbuf
into
recvbuf
under operation op
. Read moreSource§impl<T, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
Source§impl<T> ConvUtil for T
impl<T> ConvUtil for T
Source§fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
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>
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
Approximate the subject to a given type with a specific scheme.