pub struct UserCommunicator(/* private fields */);
Expand description
Implementations§
Source§impl UserCommunicator
impl UserCommunicator
Sourcepub unsafe fn from_raw(raw: MPI_Comm) -> Option<UserCommunicator>
pub unsafe fn from_raw(raw: MPI_Comm) -> Option<UserCommunicator>
If the raw value is the null handle returns None
§Safety
raw
must be a liveMPI_Comm
object.raw
must not be used after callingfrom_raw
.
Sourcepub fn into_topology(self) -> IntoTopology
pub fn into_topology(self) -> IntoTopology
Trait Implementations§
Source§impl AsCommunicator for UserCommunicator
impl AsCommunicator for UserCommunicator
Source§type Out = UserCommunicator
type Out = UserCommunicator
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 UserCommunicator
impl AsRaw for UserCommunicator
Source§impl Communicator for UserCommunicator
impl Communicator for UserCommunicator
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 Drop for UserCommunicator
impl Drop for UserCommunicator
Source§impl From<CartesianCommunicator> for UserCommunicator
impl From<CartesianCommunicator> for UserCommunicator
Source§fn from(cart_comm: CartesianCommunicator) -> Self
fn from(cart_comm: CartesianCommunicator) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for UserCommunicator
impl RefUnwindSafe for UserCommunicator
impl !Send for UserCommunicator
impl !Sync for UserCommunicator
impl Unpin for UserCommunicator
impl UnwindSafe for UserCommunicator
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<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.