Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::MpiParallelMng Class Reference

Parallelism manager using MPI. More...

#include <arcane/parallel/mpi/MpiParallelMng.h>

Inheritance diagram for Arcane::MpiParallelMng:
Collaboration diagram for Arcane::MpiParallelMng:

Classes

class  Impl
class  RequestList
 Specialization of MpiRequestList for MpiParallelMng. More...

Public Member Functions

 MpiParallelMng (const MpiParallelMngBuildInfo &bi)
bool isParallel () const override
 Returns true if the execution is parallel.
Int32 commRank () const override
 Rank of this instance in the communicator.
Int32 commSize () const override
 Number of instances in the communicator.
void * getMPICommunicator () override
 Address of the MPI communicator associated with this manager.
bool isThreadImplementation () const override
 Indicates if the implementation uses threads.
bool isHybridImplementation () const override
 Indicates if the implementation uses hybrid mode.
ITraceMngtraceMng () const override
 Trace manager.
IThreadMngthreadMng () const override
 Thread manager.
IParallelMngworldParallelMng () const override
 Parallelism manager over all allocated resources.
IIOMngioMng () const override
 I/O manager.
void initialize () override
 Initializes the parallelism manager.
bool isMasterIO () const override
 true if the instance is a master I/O manager.
Integer masterIORank () const override
 Rank of the instance managing I/O (for which isMasterIO() is true).
ITimerMngtimerMng () const override
 Timer manager.
void sendSerializer (ISerializer *values, Int32 rank) override
Request sendSerializer (ISerializer *values, Int32 rank, ByteArray &bytes) override
ISerializeMessagecreateSendSerializer (Int32 rank) override
 Creates a non-blocking message to send serialized data to rank rank.
void recvSerializer (ISerializer *values, Int32 rank) override
ISerializeMessagecreateReceiveSerializer (Int32 rank) override
 Creates a non-blocking message to receive serialized data from rank rank.
void freeRequests (ArrayView< Parallel::Request > requests) override
 Frees the requests.
void broadcastSerializer (ISerializer *values, Int32 rank) override
MessageId probe (const PointToPointMessageInfo &message) override
 Probes if messages are available.
MessageSourceInfo legacyProbe (const PointToPointMessageInfo &message) override
 Probes if messages are available.
Request sendSerializer (const ISerializer *values, const PointToPointMessageInfo &message) override
Request receiveSerializer (ISerializer *values, const PointToPointMessageInfo &message) override
void printStats () override
 Prints statistics related to this parallelism manager.
IParallelMngsequentialParallelMng () override
 Returns a sequential parallelism manager.
Ref< IParallelMngsequentialParallelMngRef () override
void barrier () override
 Performs a barrier.
void waitAllRequests (ArrayView< Request > requests) override
 Blocks while waiting for the rvalues requests to complete.
UniqueArray< IntegerwaitSomeRequests (ArrayView< Request > requests) override
 Blocks while waiting for one of the rvalues requests to complete.
UniqueArray< IntegertestSomeRequests (ArrayView< Request > requests) override
 Tests if one of the rvalues requests is complete.
ARCANE_DEPRECATED_260 Real reduceRank (eReduceType rt, Real v, Int32 *rank)
IParallelNonBlockingCollectivenonBlockingCollective () const override
 Interface for non-blocking collective operations.
void build () override
 Constructs the instance.
MpiAdapteradapter ()
Communicator communicator () const override
 MPI communicator associated with this manager.
Communicator machineCommunicator () const override
 MPI communicator derived from the communicator communicator() gathering all processes of the compute node.
MpiLockmpiLock () const
MpiDatatypeListdatatypes ()
MpiSerializeDispatcherserializeDispatcher () const
IParallelMngInternal_internalApi () override
 Internal Arcane API.
IGetVariablesValuesParallelOperationcreateGetVariablesValuesOperation () override
 Returns an operation to retrieve the values of a variable on the entities of another subdomain.
ITransferValuesParallelOperationcreateTransferValuesOperation () override
 Returns an operation to transfer values between subdomains.
IParallelExchangercreateExchanger () override
 Returns an interface for transferring messages between processors.
IParallelTopologycreateTopology () override
 Creates an instance containing information about the rank topology of this manager.
IVariableSynchronizercreateSynchronizer (IItemFamily *family) override
 Returns an interface for synchronizing variables on the group of the family.
IVariableSynchronizercreateSynchronizer (const ItemGroup &group) override
 Returns an interface for synchronizing variables on the group.
Parallel::IStatstat () override
 Statistics manager.
IParallelReplicationreplication () const override
 Replication information.
void setReplication (IParallelReplication *v) override
 Sets the Replication Information.
Ref< Parallel::IRequestListcreateRequestListRef () override
 Creates a request list for this manager.
Ref< IParallelMngUtilsFactory_internalUtilsFactory () const override
 Factory for utility functions.
Public Member Functions inherited from Arcane::ParallelMngDispatcher
 ARCCORE_DEFINE_REFERENCE_COUNTED_INCLASS_METHODS ()
 ParallelMngDispatcher (const ParallelMngDispatcherBuildInfo &bi)
 ParallelMngDispatcher (const ParallelMngDispatcher &)=delete
 ParallelMngDispatcher (ParallelMngDispatcher &&)=delete
ParallelMngDispatcher & operator= (ParallelMngDispatcher &&)=delete
ParallelMngDispatcher & operator= (const ParallelMngDispatcher &)=delete
IMessagePassingMngmessagePassingMng () const override
 Associated Arccore message passing manager.
void broadcastString (String &str, Int32 rank) override
void broadcastMemoryBuffer (ByteArray &bytes, Int32 rank) override
 Performs a broadcast of a memory region.
void allGather (ISerializer *send_serializer, ISerializer *recv_serializer) override
 Redefines allGather here to avoid hiding the symbol in derived classes.
 ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE (m_char, char) ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE(m_unsigned_char
unsigned char ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE (m_signed_char, signed char) ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE(m_short
unsigned char short ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE (m_unsigned_short, unsigned short) ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE(m_int
unsigned char short int ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE (m_unsigned_int, unsigned int) ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE(m_long
unsigned char short int long ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE (m_unsigned_long, unsigned long) ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE(m_long_long
unsigned char short int long long long ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE (m_unsigned_long_long, unsigned long long) ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE(m_float
unsigned char short int long long long float ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE (m_double, double) ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE(m_long_double
unsigned char short int long long long float long double ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE (m_apreal, APReal) ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE(m_real2
unsigned char short int long long long float long double Real2 ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE (m_real3, Real3) ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE(m_real2x2
unsigned char short int long long long float long double Real2 Real2x2 ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE (m_real3x3, Real3x3) ARCANE_PARALLEL_MANAGER_DISPATCH_PROTOTYPE(m_hpreal
virtual IParallelDispatchT< char > * dispatcher (char *)
virtual IParallelDispatchT< signed char > * dispatcher (signed char *)
virtual IParallelDispatchT< unsigned char > * dispatcher (unsigned char *)
virtual IParallelDispatchT< short > * dispatcher (short *)
virtual IParallelDispatchT< unsigned short > * dispatcher (unsigned short *)
virtual IParallelDispatchT< int > * dispatcher (int *)
virtual IParallelDispatchT< unsigned int > * dispatcher (unsigned int *)
virtual IParallelDispatchT< long > * dispatcher (long *)
virtual IParallelDispatchT< unsigned long > * dispatcher (unsigned long *)
virtual IParallelDispatchT< long long > * dispatcher (long long *)
virtual IParallelDispatchT< unsigned long long > * dispatcher (unsigned long long *)
virtual IParallelDispatchT< APReal > * dispatcher (APReal *)
virtual IParallelDispatchT< float > * dispatcher (float *)
virtual IParallelDispatchT< double > * dispatcher (double *)
virtual IParallelDispatchT< long double > * dispatcher (long double *)
virtual IParallelDispatchT< Real2 > * dispatcher (Real2 *)
virtual IParallelDispatchT< Real3 > * dispatcher (Real3 *)
virtual IParallelDispatchT< Real2x2 > * dispatcher (Real2x2 *)
virtual IParallelDispatchT< Real3x3 > * dispatcher (Real3x3 *)
virtual IParallelDispatchT< HPReal > * dispatcher (HPReal *)
template<class CreatorType>
void createDispatchers (CreatorType &ct)
ITimeStatstimeStats () const override
 Associated statistics manager (can be null).
void setTimeStats (ITimeStats *ts) override
 Sets the statistics manager.
ITimeMetricCollectortimeMetricCollector () const override
 Arccore temporal statistics collector (can be null).
UniqueArray< IntegerwaitSomeRequests (ArrayView< Request > requests) override
 Blocks while waiting for one of the rvalues requests to complete.
UniqueArray< IntegertestSomeRequests (ArrayView< Request > requests) override
 Tests if one of the rvalues requests is complete.
void processMessages (ConstArrayView< ISerializeMessage * > messages) override
 Executes the operations of messages messages.
void processMessages (ConstArrayView< Ref< ISerializeMessage > > messages) override
 Executes the operations of messages messages.
ISerializeMessageListcreateSerializeMessageList () final
 Creates a list to manage 'ISerializeMessage'.
Ref< ISerializeMessageListcreateSerializeMessageListRef () final
 Creates a list to manage 'ISerializeMessage'.
IParallelMngcreateSubParallelMng (Int32ConstArrayView kept_ranks) final
 Creates a new parallelism manager for a subset of ranks.
Ref< IParallelMngcreateSubParallelMngRef (Int32ConstArrayView kept_ranks) override
 Creates a new parallelism manager for a subset of ranks.
IParallelMngInternal_internalApi () override
 Internal Arcane API.
Public Member Functions inherited from Arcane::ReferenceCounterImpl
void addReference ()
void removeReference ()
void _internalAddReference ()
bool _internalRemoveReference ()
Public Member Functions inherited from Arcane::IParallelMng
virtual ~IParallelMng ()=default
 Releases resources.
virtual ARCANE_DEPRECATED_120 void * mpiCommunicator ()
 Address of the MPI communicator associated with this manager.
virtual void allGather (ConstArrayView< char > send_buf, ArrayView< char > recv_buf)=0
 Performs an all-gather operation across all processors. This is a collective operation. The array send_buf must have the same size, denoted n, for all processors, and the array recv_buf must have a size equal to the number of processors multiplied by n.
virtual void allGather (ConstArrayView< unsigned char > send_buf, ArrayView< unsigned char > recv_buf)=0
virtual void allGather (ConstArrayView< signed char > send_buf, ArrayView< signed char > recv_buf)=0
virtual void allGather (ConstArrayView< short > send_buf, ArrayView< short > recv_buf)=0
virtual void allGather (ConstArrayView< unsigned short > send_buf, ArrayView< unsigned short > recv_buf)=0
virtual void allGather (ConstArrayView< int > send_buf, ArrayView< int > recv_buf)=0
virtual void allGather (ConstArrayView< unsigned int > send_buf, ArrayView< unsigned int > recv_buf)=0
virtual void allGather (ConstArrayView< long > send_buf, ArrayView< long > recv_buf)=0
virtual void allGather (ConstArrayView< unsigned long > send_buf, ArrayView< unsigned long > recv_buf)=0
virtual void allGather (ConstArrayView< long long > send_buf, ArrayView< long long > recv_buf)=0
virtual void allGather (ConstArrayView< unsigned long long > send_buf, ArrayView< unsigned long long > recv_buf)=0
virtual void allGather (ConstArrayView< float > send_buf, ArrayView< float > recv_buf)=0
virtual void allGather (ConstArrayView< double > send_buf, ArrayView< double > recv_buf)=0
virtual void allGather (ConstArrayView< long double > send_buf, ArrayView< long double > recv_buf)=0
virtual void allGather (ConstArrayView< APReal > send_buf, ArrayView< APReal > recv_buf)=0
virtual void allGather (ConstArrayView< Real2 > send_buf, ArrayView< Real2 > recv_buf)=0
virtual void allGather (ConstArrayView< Real3 > send_buf, ArrayView< Real3 > recv_buf)=0
virtual void allGather (ConstArrayView< Real2x2 > send_buf, ArrayView< Real2x2 > recv_buf)=0
virtual void allGather (ConstArrayView< Real3x3 > send_buf, ArrayView< Real3x3 > recv_buf)=0
virtual void allGather (ConstArrayView< HPReal > send_buf, ArrayView< HPReal > recv_buf)=0
virtual void gather (ConstArrayView< char > send_buf, ArrayView< char > recv_buf, Int32 rank)=0
 Performs a gather operation onto a processor. This is a collective operation. The array send_buf must have the same size, denoted n, for all processors, and the array recv_buf for processor rank must have a size equal to the number of processors multiplied by n. This array recv_buf is unused for other ranks than rank.
virtual void gather (ConstArrayView< unsigned char > send_buf, ArrayView< unsigned char > recv_buf, Int32 rank)=0
virtual void gather (ConstArrayView< signed char > send_buf, ArrayView< signed char > recv_buf, Int32 rank)=0
virtual void gather (ConstArrayView< short > send_buf, ArrayView< short > recv_buf, Int32 rank)=0
virtual void gather (ConstArrayView< unsigned short > send_buf, ArrayView< unsigned short > recv_buf, Int32 rank)=0
virtual void gather (ConstArrayView< int > send_buf, ArrayView< int > recv_buf, Int32 rank)=0
virtual void gather (ConstArrayView< unsigned int > send_buf, ArrayView< unsigned int > recv_buf, Int32 rank)=0
virtual void gather (ConstArrayView< long > send_buf, ArrayView< long > recv_buf, Int32 rank)=0
virtual void gather (ConstArrayView< unsigned long > send_buf, ArrayView< unsigned long > recv_buf, Int32 rank)=0
virtual void gather (ConstArrayView< long long > send_buf, ArrayView< long long > recv_buf, Int32 rank)=0
virtual void gather (ConstArrayView< unsigned long long > send_buf, ArrayView< unsigned long long > recv_buf, Int32 rank)=0
virtual void gather (ConstArrayView< float > send_buf, ArrayView< float > recv_buf, Int32 rank)=0
virtual void gather (ConstArrayView< double > send_buf, ArrayView< double > recv_buf, Int32 rank)=0
virtual void gather (ConstArrayView< long double > send_buf, ArrayView< long double > recv_buf, Int32 rank)=0
virtual void gather (ConstArrayView< APReal > send_buf, ArrayView< APReal > recv_buf, Int32 rank)=0
virtual void gather (ConstArrayView< Real2 > send_buf, ArrayView< Real2 > recv_buf, Int32 rank)=0
virtual void gather (ConstArrayView< Real3 > send_buf, ArrayView< Real3 > recv_buf, Int32 rank)=0
virtual void gather (ConstArrayView< Real2x2 > send_buf, ArrayView< Real2x2 > recv_buf, Int32 rank)=0
virtual void gather (ConstArrayView< Real3x3 > send_buf, ArrayView< Real3x3 > recv_buf, Int32 rank)=0
virtual void gather (ConstArrayView< HPReal > send_buf, ArrayView< HPReal > recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< char > send_buf, Array< char > &recv_buf, Int32 rank)=0
 Performs an all-gather operation across all processors.
virtual void gatherVariable (ConstArrayView< signed char > send_buf, Array< signed char > &recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< unsigned char > send_buf, Array< unsigned char > &recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< short > send_buf, Array< short > &recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< unsigned short > send_buf, Array< unsigned short > &recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< int > send_buf, Array< int > &recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< unsigned int > send_buf, Array< unsigned int > &recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< long > send_buf, Array< long > &recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< unsigned long > send_buf, Array< unsigned long > &recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< long long > send_buf, Array< long long > &recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< unsigned long long > send_buf, Array< unsigned long long > &recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< float > send_buf, Array< float > &recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< double > send_buf, Array< double > &recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< long double > send_buf, Array< long double > &recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< APReal > send_buf, Array< APReal > &recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< Real2 > send_buf, Array< Real2 > &recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< Real3 > send_buf, Array< Real3 > &recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< Real2x2 > send_buf, Array< Real2x2 > &recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< Real3x3 > send_buf, Array< Real3x3 > &recv_buf, Int32 rank)=0
virtual void gatherVariable (ConstArrayView< HPReal > send_buf, Array< HPReal > &recv_buf, Int32 rank)=0
virtual void allGatherVariable (ConstArrayView< char > send_buf, Array< char > &recv_buf)=0
 Performs an all-gather operation across all processors.
virtual void allGatherVariable (ConstArrayView< signed char > send_buf, Array< signed char > &recv_buf)=0
virtual void allGatherVariable (ConstArrayView< unsigned char > send_buf, Array< unsigned char > &recv_buf)=0
virtual void allGatherVariable (ConstArrayView< short > send_buf, Array< short > &recv_buf)=0
virtual void allGatherVariable (ConstArrayView< unsigned short > send_buf, Array< unsigned short > &recv_buf)=0
virtual void allGatherVariable (ConstArrayView< int > send_buf, Array< int > &recv_buf)=0
virtual void allGatherVariable (ConstArrayView< unsigned int > send_buf, Array< unsigned int > &recv_buf)=0
virtual void allGatherVariable (ConstArrayView< long > send_buf, Array< long > &recv_buf)=0
virtual void allGatherVariable (ConstArrayView< unsigned long > send_buf, Array< unsigned long > &recv_buf)=0
virtual void allGatherVariable (ConstArrayView< long long > send_buf, Array< long long > &recv_buf)=0
virtual void allGatherVariable (ConstArrayView< unsigned long long > send_buf, Array< unsigned long long > &recv_buf)=0
virtual void allGatherVariable (ConstArrayView< float > send_buf, Array< float > &recv_buf)=0
virtual void allGatherVariable (ConstArrayView< double > send_buf, Array< double > &recv_buf)=0
virtual void allGatherVariable (ConstArrayView< long double > send_buf, Array< long double > &recv_buf)=0
virtual void allGatherVariable (ConstArrayView< APReal > send_buf, Array< APReal > &recv_buf)=0
virtual void allGatherVariable (ConstArrayView< Real2 > send_buf, Array< Real2 > &recv_buf)=0
virtual void allGatherVariable (ConstArrayView< Real3 > send_buf, Array< Real3 > &recv_buf)=0
virtual void allGatherVariable (ConstArrayView< Real2x2 > send_buf, Array< Real2x2 > &recv_buf)=0
virtual void allGatherVariable (ConstArrayView< Real3x3 > send_buf, Array< Real3x3 > &recv_buf)=0
virtual void allGatherVariable (ConstArrayView< HPReal > send_buf, Array< HPReal > &recv_buf)=0
virtual void scatterVariable (ConstArrayView< char > send_buf, ArrayView< char > recv_buf, Integer root)=0
 Scatters an array across multiple processors.
virtual void scatterVariable (ConstArrayView< signed char > send_buf, ArrayView< signed char > recv_buf, Integer root)=0
virtual void scatterVariable (ConstArrayView< unsigned char > send_buf, ArrayView< unsigned char > recv_buf, Integer root)=0
virtual void scatterVariable (ConstArrayView< short > send_buf, ArrayView< short > recv_buf, Integer root)=0
virtual void scatterVariable (ConstArrayView< unsigned short > send_buf, ArrayView< unsigned short > recv_buf, Integer root)=0
virtual void scatterVariable (ConstArrayView< int > send_buf, ArrayView< int > recv_buf, Integer root)=0
virtual void scatterVariable (ConstArrayView< unsigned int > send_buf, ArrayView< unsigned int > recv_buf, Integer root)=0
virtual void scatterVariable (ConstArrayView< long > send_buf, ArrayView< long > recv_buf, Integer root)=0
virtual void scatterVariable (ConstArrayView< unsigned long > send_buf, ArrayView< unsigned long > recv_buf, Integer root)=0
virtual void scatterVariable (ConstArrayView< long long > send_buf, ArrayView< long long > recv_buf, Integer root)=0
virtual void scatterVariable (ConstArrayView< unsigned long long > send_buf, ArrayView< unsigned long long > recv_buf, Integer root)=0
virtual void scatterVariable (ConstArrayView< float > send_buf, ArrayView< float > recv_buf, Integer root)=0
virtual void scatterVariable (ConstArrayView< double > send_buf, ArrayView< double > recv_buf, Integer root)=0
virtual void scatterVariable (ConstArrayView< long double > send_buf, ArrayView< long double > recv_buf, Integer root)=0
virtual void scatterVariable (ConstArrayView< APReal > send_buf, ArrayView< APReal > recv_buf, Integer root)=0
virtual void scatterVariable (ConstArrayView< Real2 > send_buf, ArrayView< Real2 > recv_buf, Integer root)=0
virtual void scatterVariable (ConstArrayView< Real3 > send_buf, ArrayView< Real3 > recv_buf, Integer root)=0
virtual void scatterVariable (ConstArrayView< Real2x2 > send_buf, ArrayView< Real2x2 > recv_buf, Integer root)=0
virtual void scatterVariable (ConstArrayView< Real3x3 > send_buf, ArrayView< Real3x3 > recv_buf, Integer root)=0
virtual void scatterVariable (ConstArrayView< HPReal > send_buf, ArrayView< HPReal > recv_buf, Integer root)=0
virtual char reduce (eReduceType rt, char v)=0
 Performs a reduction of type rt on the real v and returns the value.
virtual signed char reduce (eReduceType rt, signed char v)=0
virtual unsigned char reduce (eReduceType rt, unsigned char v)=0
virtual short reduce (eReduceType rt, short v)=0
virtual unsigned short reduce (eReduceType rt, unsigned short v)=0
virtual int reduce (eReduceType rt, int v)=0
virtual unsigned int reduce (eReduceType rt, unsigned int v)=0
virtual long reduce (eReduceType rt, long v)=0
virtual unsigned long reduce (eReduceType rt, unsigned long v)=0
virtual long long reduce (eReduceType rt, long long v)=0
virtual unsigned long long reduce (eReduceType rt, unsigned long long v)=0
virtual float reduce (eReduceType rt, float v)=0
virtual double reduce (eReduceType rt, double v)=0
virtual long double reduce (eReduceType rt, long double v)=0
virtual APReal reduce (eReduceType rt, APReal v)=0
virtual Real2 reduce (eReduceType rt, Real2 v)=0
virtual Real3 reduce (eReduceType rt, Real3 v)=0
virtual Real2x2 reduce (eReduceType rt, Real2x2 v)=0
virtual Real3x3 reduce (eReduceType rt, Real3x3 v)=0
virtual HPReal reduce (eReduceType rt, HPReal v)=0
virtual void computeMinMaxSum (char val, char &min_val, char &max_val, char &sum_val, Int32 &min_rank, Int32 &max_rank)=0
 Calculates the sum, min, and max of a value in one operation.
virtual void computeMinMaxSum (signed char val, signed char &min_val, signed char &max_val, signed char &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (unsigned char val, unsigned char &min_val, unsigned char &max_val, unsigned char &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (short val, short &min_val, short &max_val, short &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (unsigned short val, unsigned short &min_val, unsigned short &max_val, unsigned short &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (int val, int &min_val, int &max_val, int &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (unsigned int val, unsigned int &min_val, unsigned int &max_val, unsigned int &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (long val, long &min_val, long &max_val, long &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (unsigned long val, unsigned long &min_val, unsigned long &max_val, unsigned long &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (long long val, long long &min_val, long long &max_val, long long &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (unsigned long long val, unsigned long long &min_val, unsigned long long &max_val, unsigned long long &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (float val, float &min_val, float &max_val, float &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (double val, double &min_val, double &max_val, double &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (long double val, long double &min_val, long double &max_val, long double &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (APReal val, APReal &min_val, APReal &max_val, APReal &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (Real2 val, Real2 &min_val, Real2 &max_val, Real2 &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (Real3 val, Real3 &min_val, Real3 &max_val, Real3 &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (Real2x2 val, Real2x2 &min_val, Real2x2 &max_val, Real2x2 &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (Real3x3 val, Real3x3 &min_val, Real3x3 &max_val, Real3x3 &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (HPReal val, HPReal &min_val, HPReal &max_val, HPReal &sum_val, Int32 &min_rank, Int32 &max_rank)=0
virtual void computeMinMaxSum (ConstArrayView< char > values, ArrayView< char > min_values, ArrayView< char > max_values, ArrayView< char > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
 Calculates the sum, min, and max of a value in one operation.
virtual void computeMinMaxSum (ConstArrayView< signed char > values, ArrayView< signed char > min_values, ArrayView< signed char > max_values, ArrayView< signed char > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void computeMinMaxSum (ConstArrayView< unsigned char > values, ArrayView< unsigned char > min_values, ArrayView< unsigned char > max_values, ArrayView< unsigned char > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void computeMinMaxSum (ConstArrayView< short > values, ArrayView< short > min_values, ArrayView< short > max_values, ArrayView< short > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void computeMinMaxSum (ConstArrayView< unsigned short > values, ArrayView< unsigned short > min_values, ArrayView< unsigned short > max_values, ArrayView< unsigned short > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void computeMinMaxSum (ConstArrayView< int > values, ArrayView< int > min_values, ArrayView< int > max_values, ArrayView< int > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void computeMinMaxSum (ConstArrayView< unsigned int > values, ArrayView< unsigned int > min_values, ArrayView< unsigned int > max_values, ArrayView< unsigned int > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void computeMinMaxSum (ConstArrayView< long > values, ArrayView< long > min_values, ArrayView< long > max_values, ArrayView< long > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void computeMinMaxSum (ConstArrayView< unsigned long > values, ArrayView< unsigned long > min_values, ArrayView< unsigned long > max_values, ArrayView< unsigned long > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void computeMinMaxSum (ConstArrayView< long long > values, ArrayView< long long > min_values, ArrayView< long long > max_values, ArrayView< long long > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void computeMinMaxSum (ConstArrayView< unsigned long long > values, ArrayView< unsigned long long > min_values, ArrayView< unsigned long long > max_values, ArrayView< unsigned long long > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void computeMinMaxSum (ConstArrayView< float > values, ArrayView< float > min_values, ArrayView< float > max_values, ArrayView< float > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void computeMinMaxSum (ConstArrayView< double > values, ArrayView< double > min_values, ArrayView< double > max_values, ArrayView< double > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void computeMinMaxSum (ConstArrayView< long double > values, ArrayView< long double > min_values, ArrayView< long double > max_values, ArrayView< long double > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void computeMinMaxSum (ConstArrayView< APReal > values, ArrayView< APReal > min_values, ArrayView< APReal > max_values, ArrayView< APReal > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void computeMinMaxSum (ConstArrayView< Real2 > values, ArrayView< Real2 > min_values, ArrayView< Real2 > max_values, ArrayView< Real2 > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void computeMinMaxSum (ConstArrayView< Real3 > values, ArrayView< Real3 > min_values, ArrayView< Real3 > max_values, ArrayView< Real3 > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void computeMinMaxSum (ConstArrayView< Real2x2 > values, ArrayView< Real2x2 > min_values, ArrayView< Real2x2 > max_values, ArrayView< Real2x2 > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void computeMinMaxSum (ConstArrayView< Real3x3 > values, ArrayView< Real3x3 > min_values, ArrayView< Real3x3 > max_values, ArrayView< Real3x3 > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void computeMinMaxSum (ConstArrayView< HPReal > values, ArrayView< HPReal > min_values, ArrayView< HPReal > max_values, ArrayView< HPReal > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
virtual void reduce (eReduceType rt, ArrayView< char > v)=0
 Performs the reduction of type rt on array v.
virtual void reduce (eReduceType rt, ArrayView< signed char > v)=0
virtual void reduce (eReduceType rt, ArrayView< unsigned char > v)=0
virtual void reduce (eReduceType rt, ArrayView< short > v)=0
virtual void reduce (eReduceType rt, ArrayView< unsigned short > v)=0
virtual void reduce (eReduceType rt, ArrayView< int > v)=0
virtual void reduce (eReduceType rt, ArrayView< unsigned int > v)=0
virtual void reduce (eReduceType rt, ArrayView< long > v)=0
virtual void reduce (eReduceType rt, ArrayView< unsigned long > v)=0
virtual void reduce (eReduceType rt, ArrayView< long long > v)=0
virtual void reduce (eReduceType rt, ArrayView< unsigned long long > v)=0
virtual void reduce (eReduceType rt, ArrayView< float > v)=0
virtual void reduce (eReduceType rt, ArrayView< double > v)=0
virtual void reduce (eReduceType rt, ArrayView< long double > v)=0
virtual void reduce (eReduceType rt, ArrayView< APReal > v)=0
virtual void reduce (eReduceType rt, ArrayView< Real2 > v)=0
virtual void reduce (eReduceType rt, ArrayView< Real3 > v)=0
virtual void reduce (eReduceType rt, ArrayView< Real2x2 > v)=0
virtual void reduce (eReduceType rt, ArrayView< Real3x3 > v)=0
virtual void reduce (eReduceType rt, ArrayView< HPReal > v)=0
virtual void broadcast (ArrayView< char > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< signed char > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< unsigned char > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< short > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< unsigned short > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< int > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< unsigned int > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< long > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< unsigned long > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< long long > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< unsigned long long > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< float > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< double > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< long double > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< APReal > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< Real2 > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< Real3 > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< Real2x2 > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< Real3x3 > send_buf, Int32 rank)=0
virtual void broadcast (ArrayView< HPReal > send_buf, Int32 rank)=0
virtual void send (ConstArrayView< char > values, Int32 rank)=0
virtual void send (ConstArrayView< signed char > values, Int32 rank)=0
virtual void send (ConstArrayView< unsigned char > values, Int32 rank)=0
virtual void send (ConstArrayView< short > values, Int32 rank)=0
virtual void send (ConstArrayView< unsigned short > values, Int32 rank)=0
virtual void send (ConstArrayView< int > values, Int32 rank)=0
virtual void send (ConstArrayView< unsigned int > values, Int32 rank)=0
virtual void send (ConstArrayView< long > values, Int32 rank)=0
virtual void send (ConstArrayView< unsigned long > values, Int32 rank)=0
virtual void send (ConstArrayView< long long > values, Int32 rank)=0
virtual void send (ConstArrayView< unsigned long long > values, Int32 rank)=0
virtual void send (ConstArrayView< float > values, Int32 rank)=0
virtual void send (ConstArrayView< double > values, Int32 rank)=0
virtual void send (ConstArrayView< long double > values, Int32 rank)=0
virtual void send (ConstArrayView< APReal > values, Int32 rank)=0
virtual void send (ConstArrayView< Real2 > values, Int32 rank)=0
virtual void send (ConstArrayView< Real3 > values, Int32 rank)=0
virtual void send (ConstArrayView< Real2x2 > values, Int32 rank)=0
virtual void send (ConstArrayView< Real3x3 > values, Int32 rank)=0
virtual void send (ConstArrayView< HPReal > values, Int32 rank)=0
virtual void recv (ArrayView< char > values, Int32 rank)=0
virtual void recv (ArrayView< signed char > values, Int32 rank)=0
virtual void recv (ArrayView< unsigned char > values, Int32 rank)=0
virtual void recv (ArrayView< short > values, Int32 rank)=0
virtual void recv (ArrayView< unsigned short > values, Int32 rank)=0
virtual void recv (ArrayView< int > values, Int32 rank)=0
virtual void recv (ArrayView< unsigned int > values, Int32 rank)=0
virtual void recv (ArrayView< long > values, Int32 rank)=0
virtual void recv (ArrayView< unsigned long > values, Int32 rank)=0
virtual void recv (ArrayView< long long > values, Int32 rank)=0
virtual void recv (ArrayView< unsigned long long > values, Int32 rank)=0
virtual void recv (ArrayView< float > values, Int32 rank)=0
virtual void recv (ArrayView< double > values, Int32 rank)=0
virtual void recv (ArrayView< long double > values, Int32 rank)=0
virtual void recv (ArrayView< APReal > values, Int32 rank)=0
virtual void recv (ArrayView< Real2 > values, Int32 rank)=0
virtual void recv (ArrayView< Real3 > values, Int32 rank)=0
virtual void recv (ArrayView< Real2x2 > values, Int32 rank)=0
virtual void recv (ArrayView< Real3x3 > values, Int32 rank)=0
virtual void recv (ArrayView< HPReal > values, Int32 rank)=0
virtual Request send (ConstArrayView< char > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< signed char > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< unsigned char > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< short > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< unsigned short > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< int > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< unsigned int > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< long > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< unsigned long > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< long long > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< unsigned long long > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< float > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< double > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< long double > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< APReal > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< Real2 > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< Real3 > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< Real2x2 > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< Real3x3 > values, Int32 rank, bool is_blocking)=0
virtual Request send (ConstArrayView< HPReal > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< char > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< signed char > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< unsigned char > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< short > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< unsigned short > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< int > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< unsigned int > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< long > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< unsigned long > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< long long > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< unsigned long long > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< float > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< double > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< long double > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< APReal > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< Real2 > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< Real3 > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< Real2x2 > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< Real3x3 > values, Int32 rank, bool is_blocking)=0
virtual Request recv (ArrayView< HPReal > values, Int32 rank, bool is_blocking)=0
virtual Request receive (Span< char > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< signed char > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< unsigned char > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< short > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< unsigned short > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< int > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< unsigned int > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< long > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< unsigned long > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< long long > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< unsigned long long > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< float > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< double > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< long double > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< APReal > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< Real2 > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< Real3 > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< Real2x2 > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< Real3x3 > values, const PointToPointMessageInfo &message)=0
virtual Request receive (Span< HPReal > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const char > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const signed char > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const unsigned char > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const short > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const unsigned short > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const int > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const unsigned int > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const long > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const unsigned long > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const long long > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const unsigned long long > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const float > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const double > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const long double > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const APReal > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const Real2 > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const Real3 > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const Real2x2 > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const Real3x3 > values, const PointToPointMessageInfo &message)=0
virtual Request send (Span< const HPReal > values, const PointToPointMessageInfo &message)=0
virtual void sendRecv (ConstArrayView< char > send_buf, ArrayView< char > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< signed char > send_buf, ArrayView< signed char > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< unsigned char > send_buf, ArrayView< unsigned char > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< short > send_buf, ArrayView< short > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< unsigned short > send_buf, ArrayView< unsigned short > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< int > send_buf, ArrayView< int > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< unsigned int > send_buf, ArrayView< unsigned int > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< long > send_buf, ArrayView< long > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< unsigned long > send_buf, ArrayView< unsigned long > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< long long > send_buf, ArrayView< long long > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< unsigned long long > send_buf, ArrayView< unsigned long long > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< float > send_buf, ArrayView< float > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< double > send_buf, ArrayView< double > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< long double > send_buf, ArrayView< long double > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< APReal > send_buf, ArrayView< APReal > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< Real2 > send_buf, ArrayView< Real2 > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< Real3 > send_buf, ArrayView< Real3 > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< Real2x2 > send_buf, ArrayView< Real2x2 > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< Real3x3 > send_buf, ArrayView< Real3x3 > recv_buf, Int32 rank)=0
virtual void sendRecv (ConstArrayView< HPReal > send_buf, ArrayView< HPReal > recv_buf, Int32 rank)=0
virtual void allToAll (ConstArrayView< char > send_buf, ArrayView< char > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< signed char > send_buf, ArrayView< signed char > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< unsigned char > send_buf, ArrayView< unsigned char > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< short > send_buf, ArrayView< short > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< unsigned short > send_buf, ArrayView< unsigned short > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< int > send_buf, ArrayView< int > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< unsigned int > send_buf, ArrayView< unsigned int > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< long > send_buf, ArrayView< long > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< unsigned long > send_buf, ArrayView< unsigned long > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< long long > send_buf, ArrayView< long long > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< unsigned long long > send_buf, ArrayView< unsigned long long > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< float > send_buf, ArrayView< float > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< double > send_buf, ArrayView< double > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< long double > send_buf, ArrayView< long double > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< APReal > send_buf, ArrayView< APReal > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< Real2 > send_buf, ArrayView< Real2 > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< Real3 > send_buf, ArrayView< Real3 > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< Real2x2 > send_buf, ArrayView< Real2x2 > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< Real3x3 > send_buf, ArrayView< Real3x3 > recv_buf, Integer count)=0
virtual void allToAll (ConstArrayView< HPReal > send_buf, ArrayView< HPReal > recv_buf, Integer count)=0
virtual void allToAllVariable (ConstArrayView< char > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< char > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< signed char > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< signed char > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< unsigned char > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< unsigned char > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< short > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< short > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< unsigned short > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< unsigned short > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< int > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< int > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< unsigned int > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< unsigned int > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< long > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< long > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< unsigned long > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< unsigned long > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< long long > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< long long > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< unsigned long long > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< unsigned long long > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< float > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< float > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< double > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< double > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< long double > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< long double > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< APReal > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< APReal > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< Real2 > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< Real2 > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< Real3 > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< Real3 > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< Real2x2 > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< Real2x2 > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< Real3x3 > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< Real3x3 > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void allToAllVariable (ConstArrayView< HPReal > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< HPReal > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0
virtual void scan (eReduceType rt, ArrayView< char > v)=0
 Applies a prefix-sum algorithm on the values of v using the rt operation.
virtual void scan (eReduceType rt, ArrayView< signed char > v)=0
virtual void scan (eReduceType rt, ArrayView< unsigned char > v)=0
virtual void scan (eReduceType rt, ArrayView< short > v)=0
virtual void scan (eReduceType rt, ArrayView< unsigned short > v)=0
virtual void scan (eReduceType rt, ArrayView< int > v)=0
virtual void scan (eReduceType rt, ArrayView< unsigned int > v)=0
virtual void scan (eReduceType rt, ArrayView< long > v)=0
virtual void scan (eReduceType rt, ArrayView< unsigned long > v)=0
virtual void scan (eReduceType rt, ArrayView< long long > v)=0
virtual void scan (eReduceType rt, ArrayView< unsigned long long > v)=0
virtual void scan (eReduceType rt, ArrayView< float > v)=0
virtual void scan (eReduceType rt, ArrayView< double > v)=0
virtual void scan (eReduceType rt, ArrayView< long double > v)=0
virtual void scan (eReduceType rt, ArrayView< APReal > v)=0
virtual void scan (eReduceType rt, ArrayView< Real2 > v)=0
virtual void scan (eReduceType rt, ArrayView< Real3 > v)=0
virtual void scan (eReduceType rt, ArrayView< Real2x2 > v)=0
virtual void scan (eReduceType rt, ArrayView< Real3x3 > v)=0
virtual void scan (eReduceType rt, ArrayView< HPReal > v)=0

Public Attributes

friend ArcaneMpiSerializeMessageList

Protected Member Functions

ISerializeMessageList_createSerializeMessageList () override
IParallelMng_createSubParallelMng (Int32ConstArrayView kept_ranks) override
bool _isAcceleratorAware () const override
Ref< IParallelMng_createSubParallelMngRef (Int32 color, Int32 key) override
Protected Member Functions inherited from Arcane::ParallelMngDispatcher
MP::MessagePassingMng * _messagePassingMng () const
UniqueArray< Integer_doWaitRequests (ArrayView< Request > requests, Parallel::eWaitType wait_type)
TimeMetricAction _communicationTimeMetricAction () const
void _setControlDispatcher (MP::IControlDispatcher *d)
void _setSerializeDispatcher (MP::ISerializeDispatcher *d)

Private Member Functions

void _checkFinishedSubRequests ()
UniqueArray< Integer_waitSomeRequests (ArrayView< Request > requests, bool is_non_blocking)
IParallelMng_createSubParallelMng (MPI_Comm sub_communicator)

Private Attributes

ITraceMngm_trace = nullptr
IThreadMngm_thread_mng = nullptr
IParallelMngm_world_parallel_mng = nullptr
IIOMngm_io_mng = nullptr
Ref< IParallelMngm_sequential_parallel_mng
ITimerMngm_timer_mng = nullptr
IParallelReplicationm_replication = nullptr
bool m_is_timer_owned = false
MpiDatatypeListm_datatype_list = nullptr
MpiAdapterm_adapter = nullptr
bool m_is_parallel = false
Int32 m_comm_rank = A_NULL_RANK
 Current processor number.
Int32 m_comm_size = 0
 Number of subdomains.
bool m_is_initialized = false
 true if already initialized
Parallel::IStatm_stat = nullptr
MPI_Comm m_communicator = MPI_COMM_NULL
MPI_Comm m_machine_communicator = MPI_COMM_NULL
bool m_is_communicator_owned = false
MpiLockm_mpi_lock = nullptr
IParallelNonBlockingCollectivem_non_blocking_collective = nullptr
MpiSerializeDispatcherm_mpi_serialize_dispatcher = nullptr
Ref< IParallelMngUtilsFactorym_utils_factory
IParallelMngInternalm_parallel_mng_internal = nullptr

Additional Inherited Members

Public Types inherited from Arcane::IParallelMng
typedef Parallel::Request Request
using PointToPointMessageInfo = Parallel::PointToPointMessageInfo
using MessageId = Parallel::MessageId
using MessageSourceInfo = Parallel::MessageSourceInfo
typedef Parallel::eReduceType eReduceType
typedef Parallel::IStat IStat

Detailed Description

Parallelism manager using MPI.

Definition at line 97 of file MpiParallelMng.h.

Constructor & Destructor Documentation

◆ MpiParallelMng()

Arcane::MpiParallelMng::MpiParallelMng ( const MpiParallelMngBuildInfo & bi)
explicit

Definition at line 459 of file MpiParallelMng.cc.

◆ ~MpiParallelMng()

Arcane::MpiParallelMng::~MpiParallelMng ( )
override

Definition at line 488 of file MpiParallelMng.cc.

Member Function Documentation

◆ _checkFinishedSubRequests()

void Arcane::MpiParallelMng::_checkFinishedSubRequests ( )
private

Definition at line 761 of file MpiParallelMng.cc.

◆ _createSerializeMessageList()

ISerializeMessageList * Arcane::MpiParallelMng::_createSerializeMessageList ( )
overrideprotectedvirtual

Implements Arcane::ParallelMngDispatcher.

Definition at line 850 of file MpiParallelMng.cc.

◆ _createSubParallelMng() [1/2]

IParallelMng * Arcane::MpiParallelMng::_createSubParallelMng ( Int32ConstArrayView kept_ranks)
overrideprotectedvirtual

Implements Arcane::ParallelMngDispatcher.

Definition at line 976 of file MpiParallelMng.cc.

◆ _createSubParallelMng() [2/2]

IParallelMng * Arcane::MpiParallelMng::_createSubParallelMng ( MPI_Comm sub_communicator)
private

Definition at line 932 of file MpiParallelMng.cc.

◆ _createSubParallelMngRef()

Ref< IParallelMng > Arcane::MpiParallelMng::_createSubParallelMngRef ( Int32 color,
Int32 key )
overrideprotectedvirtual

Reimplemented from Arcane::ParallelMngDispatcher.

Definition at line 962 of file MpiParallelMng.cc.

◆ _internalApi()

IParallelMngInternal * Arcane::MpiParallelMng::_internalApi ( )
inlineoverridevirtual

Internal Arcane API.

Implements Arcane::IParallelMng.

Definition at line 176 of file MpiParallelMng.h.

◆ _internalUtilsFactory()

Ref< IParallelMngUtilsFactory > Arcane::MpiParallelMng::_internalUtilsFactory ( ) const
overridevirtual

Factory for utility functions.

Implements Arcane::IParallelMng.

Definition at line 1042 of file MpiParallelMng.cc.

◆ _isAcceleratorAware()

bool Arcane::MpiParallelMng::_isAcceleratorAware ( ) const
overrideprotectedvirtual

Reimplemented from Arcane::ParallelMngDispatcher.

Definition at line 1051 of file MpiParallelMng.cc.

◆ _waitSomeRequests()

UniqueArray< Integer > Arcane::MpiParallelMng::_waitSomeRequests ( ArrayView< Request > requests,
bool is_non_blocking )
private

Definition at line 833 of file MpiParallelMng.cc.

◆ adapter()

MpiAdapter * Arcane::MpiParallelMng::adapter ( )
inline

Definition at line 164 of file MpiParallelMng.h.

◆ barrier()

void Arcane::MpiParallelMng::barrier ( )
overridevirtual

Performs a barrier.

Implements Arcane::IParallelMng.

Definition at line 795 of file MpiParallelMng.cc.

References Arcane::ITraceMng::flush(), and traceMng().

Here is the call graph for this function:

◆ broadcastSerializer()

void Arcane::MpiParallelMng::broadcastSerializer ( ISerializer * values,
Int32 rank )
overridevirtual

Implements Arcane::IParallelMng.

Definition at line 684 of file MpiParallelMng.cc.

◆ build()

void Arcane::MpiParallelMng::build ( )
overridevirtual

Constructs the instance.

Implements Arcane::IParallelMng.

Definition at line 571 of file MpiParallelMng.cc.

References ARCANE_CHECK_POINTER, communicator(), Arcane::platform::getEnvironmentVariable(), threadMng(), timerMng(), traceMng(), and worldParallelMng().

Referenced by Arcane::MessagePassing::HybridParallelMngContainer::_createParallelMng().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ commRank()

Int32 Arcane::MpiParallelMng::commRank ( ) const
inlineoverridevirtual

Rank of this instance in the communicator.

Implements Arcane::IParallelMng.

Definition at line 112 of file MpiParallelMng.h.

References m_comm_rank.

Referenced by isMasterIO().

Here is the caller graph for this function:

◆ commSize()

Int32 Arcane::MpiParallelMng::commSize ( ) const
inlineoverridevirtual

Number of instances in the communicator.

Implements Arcane::IParallelMng.

Definition at line 113 of file MpiParallelMng.h.

References m_comm_size.

◆ communicator()

Communicator Arcane::MpiParallelMng::communicator ( ) const
inlineoverridevirtual

MPI communicator associated with this manager.

The communicator is only valid if MPI is used. It is possible to test its validity by calling the Communicator::isValid() method. If it is valid, it is possible to retrieve its value via a cast:

IParallelMng* pm = ...;
MPI_Comm c = static_cast<MPI_Comm>(pm->communicator());
Interface of the parallelism manager for a subdomain.
virtual Parallel::Communicator communicator() const =0
MPI communicator associated with this manager.

Implements Arcane::IParallelMng.

Definition at line 165 of file MpiParallelMng.h.

Referenced by build(), and Arcane::VariableSynchronizerMpiCommunicator::compute().

Here is the caller graph for this function:

◆ createExchanger()

IParallelExchanger * Arcane::MpiParallelMng::createExchanger ( )
overridevirtual

Returns an interface for transferring messages between processors.

The returned instance must be destroyed by the delete operator.

Implements Arcane::IParallelMng.

Definition at line 877 of file MpiParallelMng.cc.

◆ createGetVariablesValuesOperation()

IGetVariablesValuesParallelOperation * Arcane::MpiParallelMng::createGetVariablesValuesOperation ( )
overridevirtual

Returns an operation to retrieve the values of a variable on the entities of another subdomain.

The returned instance must be destroyed by the delete operator.

Implements Arcane::IParallelMng.

Definition at line 859 of file MpiParallelMng.cc.

◆ createReceiveSerializer()

ISerializeMessage * Arcane::MpiParallelMng::createReceiveSerializer ( Int32 rank)
overridevirtual

Creates a non-blocking message to receive serialized data from rank rank.

The message is processed only when processMessages() is called.

Implements Arcane::IParallelMng.

Definition at line 706 of file MpiParallelMng.cc.

◆ createRequestListRef()

Ref< IRequestList > Arcane::MpiParallelMng::createRequestListRef ( )
overridevirtual

Creates a request list for this manager.

Implements Arcane::IParallelMng.

Definition at line 1033 of file MpiParallelMng.cc.

References Arcane::createRef().

Here is the call graph for this function:

◆ createSendSerializer()

ISerializeMessage * Arcane::MpiParallelMng::createSendSerializer ( Int32 rank)
overridevirtual

Creates a non-blocking message to send serialized data to rank rank.

The message is processed only when processMessages() is called.

Implements Arcane::IParallelMng.

Definition at line 663 of file MpiParallelMng.cc.

◆ createSynchronizer() [1/2]

IVariableSynchronizer * Arcane::MpiParallelMng::createSynchronizer ( const ItemGroup & group)
overridevirtual

Returns an interface for synchronizing variables on the group.

The returned instance must be destroyed by the delete operator.

Implements Arcane::IParallelMng.

Definition at line 895 of file MpiParallelMng.cc.

◆ createSynchronizer() [2/2]

IVariableSynchronizer * Arcane::MpiParallelMng::createSynchronizer ( IItemFamily * family)
overridevirtual

Returns an interface for synchronizing variables on the group of the family.

The returned instance must be destroyed by the delete operator.

Implements Arcane::IParallelMng.

Definition at line 886 of file MpiParallelMng.cc.

◆ createTopology()

IParallelTopology * Arcane::MpiParallelMng::createTopology ( )
overridevirtual

Creates an instance containing information about the rank topology of this manager.

This operation is collective.

The returned instance must be destroyed by the delete operator.

Implements Arcane::IParallelMng.

Definition at line 904 of file MpiParallelMng.cc.

◆ createTransferValuesOperation()

ITransferValuesParallelOperation * Arcane::MpiParallelMng::createTransferValuesOperation ( )
overridevirtual

Returns an operation to transfer values between subdomains.

The returned instance must be destroyed by the delete operator.

Implements Arcane::IParallelMng.

Definition at line 868 of file MpiParallelMng.cc.

◆ datatypes()

MpiDatatypeList * Arcane::MpiParallelMng::datatypes ( )
inline

Definition at line 170 of file MpiParallelMng.h.

◆ freeRequests()

void Arcane::MpiParallelMng::freeRequests ( ArrayView< Parallel::Request > requests)
overridevirtual

Frees the requests.

Implements Arcane::IParallelMng.

Definition at line 751 of file MpiParallelMng.cc.

References Arcane::ArrayView< T >::size().

Here is the call graph for this function:

◆ getMPICommunicator()

void * Arcane::MpiParallelMng::getMPICommunicator ( )
inlineoverridevirtual

Address of the MPI communicator associated with this manager.

The communicator is only valid if MPI is used. Otherwise, the returned address is 0. The returned value is of type (MPI_Comm*).

Implements Arcane::IParallelMng.

Definition at line 114 of file MpiParallelMng.h.

◆ initialize()

void Arcane::MpiParallelMng::initialize ( )
overridevirtual

Initializes the parallelism manager.

Implements Arcane::IParallelMng.

Definition at line 630 of file MpiParallelMng.cc.

References m_is_initialized, and Arcane::ParallelMngDispatcher::timeMetricCollector().

Referenced by Arcane::MessagePassing::HybridParallelMngContainer::_createParallelMng().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ioMng()

IIOMng * Arcane::MpiParallelMng::ioMng ( ) const
inlineoverridevirtual

I/O manager.

Implements Arcane::IParallelMng.

Definition at line 120 of file MpiParallelMng.h.

◆ isHybridImplementation()

bool Arcane::MpiParallelMng::isHybridImplementation ( ) const
inlineoverridevirtual

Indicates if the implementation uses hybrid mode.

The implementation uses mixed MPI/thread mode.

Implements Arcane::IParallelMng.

Definition at line 116 of file MpiParallelMng.h.

◆ isMasterIO()

bool Arcane::MpiParallelMng::isMasterIO ( ) const
inlineoverridevirtual

true if the instance is a master I/O manager.

Implements Arcane::IParallelMng.

Definition at line 123 of file MpiParallelMng.h.

References commRank().

Here is the call graph for this function:

◆ isParallel()

bool Arcane::MpiParallelMng::isParallel ( ) const
inlineoverridevirtual

Returns true if the execution is parallel.

The execution is parallel if the instance implements a message exchange mechanism such as MPI.

Implements Arcane::IParallelMng.

Definition at line 111 of file MpiParallelMng.h.

◆ isThreadImplementation()

bool Arcane::MpiParallelMng::isThreadImplementation ( ) const
inlineoverridevirtual

Indicates if the implementation uses threads.

The implementation uses threads either in pure thread mode, or in mixed MPI/thread mode.

Implements Arcane::IParallelMng.

Definition at line 115 of file MpiParallelMng.h.

◆ legacyProbe()

auto Arcane::MpiParallelMng::legacyProbe ( const PointToPointMessageInfo & message)
overridevirtual

Probes if messages are available.

See also
Arccore::MessagePassing::mpLegacyProbe().

Implements Arcane::IParallelMng.

Definition at line 724 of file MpiParallelMng.cc.

◆ machineCommunicator()

Communicator Arcane::MpiParallelMng::machineCommunicator ( ) const
inlineoverridevirtual

MPI communicator derived from the communicator communicator() gathering all processes of the compute node.

The communicator is only valid if MPI is used. It is possible to test its validity by calling the Communicator::isValid() method. If it is valid, it is possible to retrieve its value via a cast:

IParallelMng* pm = ...;
MPI_Comm mc = static_cast<MPI_Comm>(pm->machineCommunicator());
virtual Parallel::Communicator machineCommunicator() const
MPI communicator derived from the communicator communicator() gathering all processes of the compute ...

Reimplemented from Arcane::IParallelMng.

Definition at line 166 of file MpiParallelMng.h.

◆ masterIORank()

Integer Arcane::MpiParallelMng::masterIORank ( ) const
inlineoverridevirtual

Rank of the instance managing I/O (for which isMasterIO() is true).

In the current implementation, this is always the rank 0 processor.

Implements Arcane::IParallelMng.

Definition at line 124 of file MpiParallelMng.h.

◆ mpiLock()

MpiLock * Arcane::MpiParallelMng::mpiLock ( ) const
inline

Definition at line 168 of file MpiParallelMng.h.

◆ nonBlockingCollective()

IParallelNonBlockingCollective * Arcane::MpiParallelMng::nonBlockingCollective ( ) const
inlineoverridevirtual

Interface for non-blocking collective operations.

Implements Arcane::IParallelMng.

Definition at line 158 of file MpiParallelMng.h.

◆ printStats()

void Arcane::MpiParallelMng::printStats ( )
overridevirtual

Prints statistics related to this parallelism manager.

Implements Arcane::IParallelMng.

Definition at line 785 of file MpiParallelMng.cc.

◆ probe()

auto Arcane::MpiParallelMng::probe ( const PointToPointMessageInfo & message)
overridevirtual

Probes if messages are available.

See also
Arccore::MessagePassing::mpProbe().

Implements Arcane::IParallelMng.

Definition at line 715 of file MpiParallelMng.cc.

◆ receiveSerializer()

Request Arcane::MpiParallelMng::receiveSerializer ( ISerializer * values,
const PointToPointMessageInfo & message )
overridevirtual

Implements Arcane::IParallelMng.

Definition at line 742 of file MpiParallelMng.cc.

◆ recvSerializer()

void Arcane::MpiParallelMng::recvSerializer ( ISerializer * values,
Int32 rank )
overridevirtual

Implements Arcane::IParallelMng.

Definition at line 694 of file MpiParallelMng.cc.

◆ reduceRank()

ARCANE_DEPRECATED_260 Real Arcane::MpiParallelMng::reduceRank ( eReduceType rt,
Real v,
Int32 * rank )
inline

Definition at line 150 of file MpiParallelMng.h.

◆ replication()

IParallelReplication * Arcane::MpiParallelMng::replication ( ) const
overridevirtual

Replication information.

The returned pointer is never null and remains the property of this instance.

Implements Arcane::IParallelMng.

Definition at line 913 of file MpiParallelMng.cc.

◆ sendSerializer() [1/3]

Request Arcane::MpiParallelMng::sendSerializer ( const ISerializer * values,
const PointToPointMessageInfo & message )
overridevirtual

Implements Arcane::IParallelMng.

Definition at line 733 of file MpiParallelMng.cc.

◆ sendSerializer() [2/3]

void Arcane::MpiParallelMng::sendSerializer ( ISerializer * values,
Int32 rank )
overridevirtual

Implements Arcane::IParallelMng.

Definition at line 651 of file MpiParallelMng.cc.

◆ sendSerializer() [3/3]

Request Arcane::MpiParallelMng::sendSerializer ( ISerializer * values,
Int32 rank,
ByteArray & bytes )
overridevirtual

The returned request must be used in waitAllRequests() or freed by calling freeRequests().

Implements Arcane::IParallelMng.

Definition at line 672 of file MpiParallelMng.cc.

References Arcane::MessagePassing::internal::BasicSerializeMessage::defaultTag(), and Arcane::ParallelMngDispatcher::timeStats().

Here is the call graph for this function:

◆ sequentialParallelMng()

IParallelMng * Arcane::MpiParallelMng::sequentialParallelMng ( )
overridevirtual

Returns a sequential parallelism manager.

This instance retains ownership of the returned instance, which must not be destroyed. The lifetime of the returned instance is the same as this instance.

Implements Arcane::IParallelMng.

Definition at line 776 of file MpiParallelMng.cc.

◆ sequentialParallelMngRef()

Ref< IParallelMng > Arcane::MpiParallelMng::sequentialParallelMngRef ( )
overridevirtual

Implements Arcane::IParallelMng.

Definition at line 770 of file MpiParallelMng.cc.

◆ serializeDispatcher()

MpiSerializeDispatcher * Arcane::MpiParallelMng::serializeDispatcher ( ) const
inline

Definition at line 172 of file MpiParallelMng.h.

◆ setReplication()

void Arcane::MpiParallelMng::setReplication ( IParallelReplication * v)
overridevirtual

Sets the Replication Information.

This method is internal to Arcane and should only be called during initialization.

Implements Arcane::IParallelMng.

Definition at line 922 of file MpiParallelMng.cc.

◆ stat()

Parallel::IStat * Arcane::MpiParallelMng::stat ( )
inlineoverridevirtual

Statistics manager.

Implements Arcane::IParallelMng.

Definition at line 193 of file MpiParallelMng.h.

◆ testSomeRequests()

UniqueArray< Integer > Arcane::MpiParallelMng::testSomeRequests ( ArrayView< Request > rvalues)
overridevirtual

Tests if one of the rvalues requests is complete.

Returns an array of indices of completed requests.

Implements Arcane::IParallelMng.

Definition at line 824 of file MpiParallelMng.cc.

◆ threadMng()

IThreadMng * Arcane::MpiParallelMng::threadMng ( ) const
inlineoverridevirtual

Thread manager.

Implements Arcane::IParallelMng.

Definition at line 118 of file MpiParallelMng.h.

Referenced by build().

Here is the caller graph for this function:

◆ timerMng()

ITimerMng * Arcane::MpiParallelMng::timerMng ( ) const
inlineoverridevirtual

Timer manager.

Implements Arcane::IParallelMng.

Definition at line 126 of file MpiParallelMng.h.

Referenced by build().

Here is the caller graph for this function:

◆ traceMng()

ITraceMng * Arcane::MpiParallelMng::traceMng ( ) const
inlineoverridevirtual

Trace manager.

Implements Arcane::IParallelMng.

Definition at line 117 of file MpiParallelMng.h.

Referenced by barrier(), and build().

Here is the caller graph for this function:

◆ waitAllRequests()

void Arcane::MpiParallelMng::waitAllRequests ( ArrayView< Request > rvalues)
overridevirtual

Blocks while waiting for the rvalues requests to complete.

Implements Arcane::IParallelMng.

Definition at line 805 of file MpiParallelMng.cc.

◆ waitSomeRequests()

UniqueArray< Integer > Arcane::MpiParallelMng::waitSomeRequests ( ArrayView< Request > rvalues)
overridevirtual

Blocks while waiting for one of the rvalues requests to complete.

Returns an array of indices of completed requests.

Implements Arcane::IParallelMng.

Definition at line 815 of file MpiParallelMng.cc.

◆ worldParallelMng()

IParallelMng * Arcane::MpiParallelMng::worldParallelMng ( ) const
inlineoverridevirtual

Parallelism manager over all allocated resources.

Implements Arcane::IParallelMng.

Definition at line 119 of file MpiParallelMng.h.

Referenced by build().

Here is the caller graph for this function:

Member Data Documentation

◆ ArcaneMpiSerializeMessageList

friend Arcane::MpiParallelMng::ArcaneMpiSerializeMessageList

Definition at line 102 of file MpiParallelMng.h.

◆ m_adapter

MpiAdapter* Arcane::MpiParallelMng::m_adapter = nullptr
private

Definition at line 210 of file MpiParallelMng.h.

◆ m_comm_rank

Int32 Arcane::MpiParallelMng::m_comm_rank = A_NULL_RANK
private

Current processor number.

Definition at line 212 of file MpiParallelMng.h.

Referenced by commRank().

◆ m_comm_size

Int32 Arcane::MpiParallelMng::m_comm_size = 0
private

Number of subdomains.

Definition at line 213 of file MpiParallelMng.h.

Referenced by commSize().

◆ m_communicator

MPI_Comm Arcane::MpiParallelMng::m_communicator = MPI_COMM_NULL
private

Definition at line 216 of file MpiParallelMng.h.

◆ m_datatype_list

MpiDatatypeList* Arcane::MpiParallelMng::m_datatype_list = nullptr
private

Definition at line 209 of file MpiParallelMng.h.

◆ m_io_mng

IIOMng* Arcane::MpiParallelMng::m_io_mng = nullptr
private

Definition at line 204 of file MpiParallelMng.h.

◆ m_is_communicator_owned

bool Arcane::MpiParallelMng::m_is_communicator_owned = false
private

Definition at line 218 of file MpiParallelMng.h.

◆ m_is_initialized

bool Arcane::MpiParallelMng::m_is_initialized = false
private

true if already initialized

Definition at line 214 of file MpiParallelMng.h.

Referenced by initialize().

◆ m_is_parallel

bool Arcane::MpiParallelMng::m_is_parallel = false
private

Definition at line 211 of file MpiParallelMng.h.

◆ m_is_timer_owned

bool Arcane::MpiParallelMng::m_is_timer_owned = false
private

Definition at line 208 of file MpiParallelMng.h.

◆ m_machine_communicator

MPI_Comm Arcane::MpiParallelMng::m_machine_communicator = MPI_COMM_NULL
private

Definition at line 217 of file MpiParallelMng.h.

◆ m_mpi_lock

MpiLock* Arcane::MpiParallelMng::m_mpi_lock = nullptr
private

Definition at line 219 of file MpiParallelMng.h.

◆ m_mpi_serialize_dispatcher

MpiSerializeDispatcher* Arcane::MpiParallelMng::m_mpi_serialize_dispatcher = nullptr
private

Definition at line 221 of file MpiParallelMng.h.

◆ m_non_blocking_collective

IParallelNonBlockingCollective* Arcane::MpiParallelMng::m_non_blocking_collective = nullptr
private

Definition at line 220 of file MpiParallelMng.h.

◆ m_parallel_mng_internal

IParallelMngInternal* Arcane::MpiParallelMng::m_parallel_mng_internal = nullptr
private

Definition at line 223 of file MpiParallelMng.h.

◆ m_replication

IParallelReplication* Arcane::MpiParallelMng::m_replication = nullptr
private

Definition at line 207 of file MpiParallelMng.h.

◆ m_sequential_parallel_mng

Ref<IParallelMng> Arcane::MpiParallelMng::m_sequential_parallel_mng
private

Definition at line 205 of file MpiParallelMng.h.

◆ m_stat

Parallel::IStat* Arcane::MpiParallelMng::m_stat = nullptr
private

Definition at line 215 of file MpiParallelMng.h.

◆ m_thread_mng

IThreadMng* Arcane::MpiParallelMng::m_thread_mng = nullptr
private

Definition at line 202 of file MpiParallelMng.h.

◆ m_timer_mng

ITimerMng* Arcane::MpiParallelMng::m_timer_mng = nullptr
private

Definition at line 206 of file MpiParallelMng.h.

◆ m_trace

ITraceMng* Arcane::MpiParallelMng::m_trace = nullptr
private

Definition at line 201 of file MpiParallelMng.h.

◆ m_utils_factory

Ref<IParallelMngUtilsFactory> Arcane::MpiParallelMng::m_utils_factory
private

Definition at line 222 of file MpiParallelMng.h.

◆ m_world_parallel_mng

IParallelMng* Arcane::MpiParallelMng::m_world_parallel_mng = nullptr
private

Definition at line 203 of file MpiParallelMng.h.


The documentation for this class was generated from the following files: