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

Thread-based parallelism manager. More...

#include <arcane/parallel/mpithread/HybridParallelMng.h>

Inheritance diagram for Arcane::MessagePassing::HybridParallelMng:
Collaboration diagram for Arcane::MessagePassing::HybridParallelMng:

Classes

class  Impl
class  RequestList
 Implementation of IRequestList for HybridParallelMng. More...

Public Member Functions

 HybridParallelMng (const HybridParallelMngBuildInfo &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.
MP::Communicator communicator () const override
 MPI communicator associated with this manager.
MP::Communicator machineCommunicator () const override
 MPI communicator derived from the communicator communicator() gathering all processes of the compute node.
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.
Int32 masterIORank () const override
 Rank of the instance managing I/O (for which isMasterIO() is true).
ITimerMngtimerMng () const override
 Timer manager.
IParallelMngsequentialParallelMng () override
 Returns a sequential parallelism manager.
Ref< IParallelMngsequentialParallelMngRef () override
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< 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.
void barrier () override
 Performs a barrier.
void waitAllRequests (ArrayView< Request > requests) override
 Blocks while waiting for the rvalues requests to complete.
IParallelNonBlockingCollectivenonBlockingCollective () const override
 Interface for non-blocking collective operations.
void build () override
 Constructs the instance.
Int32 localRank () const
Int32 localNbRank () const
MpiParallelMngmpiParallelMng ()
PointToPointMessageInfo buildMessage (Int32 dest, MP::eBlockingType is_blocking)
 Constructs a message with destination dest.
PointToPointMessageInfo buildMessage (const PointToPointMessageInfo &message)
IParallelMngInternal_internalApi () override
 Internal Arcane API.
IThreadBarriergetThreadBarrier ()
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

Protected Member Functions

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.
ISerializeMessageList_createSerializeMessageList () override
IParallelMng_createSubParallelMng (Int32ConstArrayView kept_ranks) override
Ref< IParallelMngcreateSubParallelMngRef (Int32ConstArrayView kept_ranks) override
 Creates a new parallelism manager for a subset of ranks.
Ref< IParallelMngUtilsFactory_internalUtilsFactory () const override
 Factory for utility functions.
bool _isAcceleratorAware () const override
Protected Member Functions inherited from Arcane::ParallelMngDispatcher
MP::MessagePassingMng * _messagePassingMng () const
UniqueArray< Integer_doWaitRequests (ArrayView< Request > requests, Parallel::eWaitType wait_type)
virtual Ref< IParallelMng_createSubParallelMngRef (Int32 color, Int32 key)
TimeMetricAction _communicationTimeMetricAction () const
void _setControlDispatcher (MP::IControlDispatcher *d)
void _setSerializeDispatcher (MP::ISerializeDispatcher *d)

Private Member Functions

SerializeBuffer_castSerializer (ISerializer *serializer)

Private Attributes

friend HybridSerializeMessageList
ITraceMngm_trace
IThreadMngm_thread_mng
IParallelMngm_world_parallel_mng
IIOMngm_io_mng
Ref< IParallelMngm_sequential_parallel_mng
ITimerMngm_timer_mng
IParallelReplicationm_replication
HybridMessageQueuem_message_queue
bool m_is_parallel
Int32 m_global_rank
 Current processor number.
Int32 m_global_nb_rank
 Total number of global ranks.
Int32 m_local_rank
 Local rank of the current processor.
Int32 m_local_nb_rank
 Number of local ranks.
bool m_is_initialized
 true if already initialized
Parallel::IStatm_stat = nullptr
IThreadBarrierm_thread_barrier = nullptr
MpiParallelMngm_mpi_parallel_mng = nullptr
MpiThreadAllDispatcherm_all_dispatchers = nullptr
Array< HybridParallelMng * > * m_parallel_mng_list = nullptr
IParallelMngContainerFactorym_sub_builder_factory = nullptr
Ref< IParallelMngContainerm_parent_container_ref
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

Thread-based parallelism manager.

Definition at line 72 of file HybridParallelMng.h.

Constructor & Destructor Documentation

◆ HybridParallelMng()

Arcane::MessagePassing::HybridParallelMng::HybridParallelMng ( const HybridParallelMngBuildInfo & bi)
explicit

Definition at line 266 of file HybridParallelMng.cc.

◆ ~HybridParallelMng()

Arcane::MessagePassing::HybridParallelMng::~HybridParallelMng ( )
override

Definition at line 306 of file HybridParallelMng.cc.

Member Function Documentation

◆ _castSerializer()

SerializeBuffer * Arcane::MessagePassing::HybridParallelMng::_castSerializer ( ISerializer * serializer)
private

Definition at line 405 of file HybridParallelMng.cc.

◆ _createSerializeMessageList()

ISerializeMessageList * Arcane::MessagePassing::HybridParallelMng::_createSerializeMessageList ( )
overrideprotectedvirtual

Implements Arcane::ParallelMngDispatcher.

Definition at line 599 of file HybridParallelMng.cc.

◆ _createSubParallelMng()

IParallelMng * Arcane::MessagePassing::HybridParallelMng::_createSubParallelMng ( Int32ConstArrayView kept_ranks)
overrideprotectedvirtual

Implements Arcane::ParallelMngDispatcher.

Definition at line 782 of file HybridParallelMng.cc.

◆ _internalApi()

IParallelMngInternal * Arcane::MessagePassing::HybridParallelMng::_internalApi ( )
inlineoverridevirtual

Internal Arcane API.

Implements Arcane::IParallelMng.

Definition at line 139 of file HybridParallelMng.h.

◆ _internalUtilsFactory()

Ref< IParallelMngUtilsFactory > Arcane::MessagePassing::HybridParallelMng::_internalUtilsFactory ( ) const
overrideprotectedvirtual

Factory for utility functions.

Implements Arcane::IParallelMng.

Definition at line 951 of file HybridParallelMng.cc.

◆ _isAcceleratorAware()

bool Arcane::MessagePassing::HybridParallelMng::_isAcceleratorAware ( ) const
overrideprotectedvirtual

Reimplemented from Arcane::ParallelMngDispatcher.

Definition at line 960 of file HybridParallelMng.cc.

◆ barrier()

void Arcane::MessagePassing::HybridParallelMng::barrier ( )
overridevirtual

Performs a barrier.

Implements Arcane::IParallelMng.

Definition at line 587 of file HybridParallelMng.cc.

References m_local_rank.

◆ broadcastSerializer()

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

Implements Arcane::IParallelMng.

Definition at line 472 of file HybridParallelMng.cc.

◆ build()

void Arcane::MessagePassing::HybridParallelMng::build ( )
overridevirtual

Constructs the instance.

Implements Arcane::IParallelMng.

Definition at line 357 of file HybridParallelMng.cc.

References communicator(), Arcane::ITraceMng::info(), m_global_rank, m_local_rank, 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:

◆ buildMessage()

PointToPointMessageInfo Arcane::MessagePassing::HybridParallelMng::buildMessage ( const PointToPointMessageInfo & message)

Definition at line 762 of file HybridParallelMng.cc.

◆ commRank()

Int32 Arcane::MessagePassing::HybridParallelMng::commRank ( ) const
inlineoverridevirtual

Rank of this instance in the communicator.

Implements Arcane::IParallelMng.

Definition at line 85 of file HybridParallelMng.h.

References m_global_rank.

Referenced by isMasterIO().

Here is the caller graph for this function:

◆ commSize()

Int32 Arcane::MessagePassing::HybridParallelMng::commSize ( ) const
inlineoverridevirtual

Number of instances in the communicator.

Implements Arcane::IParallelMng.

Definition at line 86 of file HybridParallelMng.h.

References m_global_nb_rank.

◆ communicator()

MP::Communicator Arcane::MessagePassing::HybridParallelMng::communicator ( ) const
overridevirtual

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 744 of file HybridParallelMng.cc.

Referenced by build(), and createSubParallelMngRef().

Here is the caller graph for this function:

◆ createExchanger()

IParallelExchanger * Arcane::MessagePassing::HybridParallelMng::createExchanger ( )
overrideprotectedvirtual

Returns an interface for transferring messages between processors.

The returned instance must be destroyed by the delete operator.

Implements Arcane::IParallelMng.

Definition at line 429 of file HybridParallelMng.cc.

◆ createGetVariablesValuesOperation()

IGetVariablesValuesParallelOperation * Arcane::MessagePassing::HybridParallelMng::createGetVariablesValuesOperation ( )
overrideprotectedvirtual

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 417 of file HybridParallelMng.cc.

◆ createReceiveSerializer()

ISerializeMessage * Arcane::MessagePassing::HybridParallelMng::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 516 of file HybridParallelMng.cc.

◆ createRequestListRef()

Ref< Parallel::IRequestList > Arcane::MessagePassing::HybridParallelMng::createRequestListRef ( )
overrideprotectedvirtual

Creates a request list for this manager.

Implements Arcane::IParallelMng.

Definition at line 716 of file HybridParallelMng.cc.

References Arcane::makeRef().

Here is the call graph for this function:

◆ createSendSerializer()

ISerializeMessage * Arcane::MessagePassing::HybridParallelMng::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 463 of file HybridParallelMng.cc.

◆ createSubParallelMngRef()

Ref< IParallelMng > Arcane::MessagePassing::HybridParallelMng::createSubParallelMngRef ( Int32ConstArrayView kept_ranks)
overrideprotectedvirtual

Creates a new parallelism manager for a subset of ranks.

This operation is collective.

This operation allows creating a new manager containing only the kept_ranks of this manager.

If the rank calling this operation is not in kept_ranks, it returns 0.

The returned instance must be destroyed by the delete operator.

Indicates who will make the MPI calls

Implements Arcane::IParallelMng.

Definition at line 792 of file HybridParallelMng.cc.

References Arcane::Array< T >::add(), ARCANE_CHECK_POINTER, ARCANE_FATAL, communicator(), Arcane::IParallelMng::computeMinMaxSum(), Arcane::ConstArrayView< T >::empty(), Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::get(), m_global_rank, m_local_nb_rank, m_local_rank, machineCommunicator(), Arcane::Array< T >::resize(), Arcane::ConstArrayView< T >::size(), and traceMng().

Here is the call graph for this function:

◆ createSynchronizer() [1/2]

IVariableSynchronizer * Arcane::MessagePassing::HybridParallelMng::createSynchronizer ( const ItemGroup & group)
overrideprotectedvirtual

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 619 of file HybridParallelMng.cc.

◆ createSynchronizer() [2/2]

IVariableSynchronizer * Arcane::MessagePassing::HybridParallelMng::createSynchronizer ( IItemFamily * family)
overrideprotectedvirtual

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 610 of file HybridParallelMng.cc.

◆ createTopology()

IParallelTopology * Arcane::MessagePassing::HybridParallelMng::createTopology ( )
overrideprotectedvirtual

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 628 of file HybridParallelMng.cc.

◆ createTransferValuesOperation()

ITransferValuesParallelOperation * Arcane::MessagePassing::HybridParallelMng::createTransferValuesOperation ( )
overrideprotectedvirtual

Returns an operation to transfer values between subdomains.

The returned instance must be destroyed by the delete operator.

Implements Arcane::IParallelMng.

Definition at line 423 of file HybridParallelMng.cc.

◆ freeRequests()

void Arcane::MessagePassing::HybridParallelMng::freeRequests ( ArrayView< Request > requests)
overridevirtual

Frees the requests.

Implements Arcane::IParallelMng.

Definition at line 525 of file HybridParallelMng.cc.

◆ getMPICommunicator()

void * Arcane::MessagePassing::HybridParallelMng::getMPICommunicator ( )
overridevirtual

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 735 of file HybridParallelMng.cc.

◆ getThreadBarrier()

IThreadBarrier * Arcane::MessagePassing::HybridParallelMng::getThreadBarrier ( )
inline

Definition at line 161 of file HybridParallelMng.h.

◆ initialize()

void Arcane::MessagePassing::HybridParallelMng::initialize ( )
overridevirtual

Initializes the parallelism manager.

Implements Arcane::IParallelMng.

Definition at line 390 of file HybridParallelMng.cc.

References m_is_initialized.

◆ ioMng()

IIOMng * Arcane::MessagePassing::HybridParallelMng::ioMng ( ) const
inlineoverridevirtual

I/O manager.

Implements Arcane::IParallelMng.

Definition at line 95 of file HybridParallelMng.h.

◆ isHybridImplementation()

bool Arcane::MessagePassing::HybridParallelMng::isHybridImplementation ( ) const
inlineoverridevirtual

Indicates if the implementation uses hybrid mode.

The implementation uses mixed MPI/thread mode.

Implements Arcane::IParallelMng.

Definition at line 91 of file HybridParallelMng.h.

◆ isMasterIO()

bool Arcane::MessagePassing::HybridParallelMng::isMasterIO ( ) const
inlineoverridevirtual

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

Implements Arcane::IParallelMng.

Definition at line 98 of file HybridParallelMng.h.

References commRank().

Here is the call graph for this function:

◆ isParallel()

bool Arcane::MessagePassing::HybridParallelMng::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 84 of file HybridParallelMng.h.

◆ isThreadImplementation()

bool Arcane::MessagePassing::HybridParallelMng::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 90 of file HybridParallelMng.h.

◆ legacyProbe()

MessageSourceInfo Arcane::MessagePassing::HybridParallelMng::legacyProbe ( const PointToPointMessageInfo & message)
overridevirtual

Probes if messages are available.

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

Implements Arcane::IParallelMng.

Definition at line 546 of file HybridParallelMng.cc.

References m_global_rank, and Arcane::MessagePassing::PointToPointMessageInfo::setEmiterRank().

Here is the call graph for this function:

◆ localNbRank()

Int32 Arcane::MessagePassing::HybridParallelMng::localNbRank ( ) const
inline

Definition at line 131 of file HybridParallelMng.h.

◆ localRank()

Int32 Arcane::MessagePassing::HybridParallelMng::localRank ( ) const
inline

Definition at line 130 of file HybridParallelMng.h.

◆ machineCommunicator()

MP::Communicator Arcane::MessagePassing::HybridParallelMng::machineCommunicator ( ) const
overridevirtual

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 753 of file HybridParallelMng.cc.

Referenced by createSubParallelMngRef().

Here is the caller graph for this function:

◆ masterIORank()

Int32 Arcane::MessagePassing::HybridParallelMng::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 99 of file HybridParallelMng.h.

◆ mpiParallelMng()

MpiParallelMng * Arcane::MessagePassing::HybridParallelMng::mpiParallelMng ( )
inline

Definition at line 132 of file HybridParallelMng.h.

◆ nonBlockingCollective()

IParallelNonBlockingCollective * Arcane::MessagePassing::HybridParallelMng::nonBlockingCollective ( ) const
inlineoverridevirtual

Interface for non-blocking collective operations.

Implements Arcane::IParallelMng.

Definition at line 124 of file HybridParallelMng.h.

◆ printStats()

void Arcane::MessagePassing::HybridParallelMng::printStats ( )
overridevirtual

Prints statistics related to this parallelism manager.

Implements Arcane::IParallelMng.

Definition at line 577 of file HybridParallelMng.cc.

◆ probe()

MessageId Arcane::MessagePassing::HybridParallelMng::probe ( const PointToPointMessageInfo & message)
overridevirtual

Probes if messages are available.

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

Implements Arcane::IParallelMng.

Definition at line 535 of file HybridParallelMng.cc.

References m_global_rank, and Arcane::MessagePassing::PointToPointMessageInfo::setEmiterRank().

Here is the call graph for this function:

◆ receiveSerializer()

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

Implements Arcane::IParallelMng.

Definition at line 567 of file HybridParallelMng.cc.

◆ recvSerializer()

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

Implements Arcane::IParallelMng.

Definition at line 505 of file HybridParallelMng.cc.

◆ replication()

IParallelReplication * Arcane::MessagePassing::HybridParallelMng::replication ( ) const
overrideprotectedvirtual

Replication information.

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

Implements Arcane::IParallelMng.

Definition at line 637 of file HybridParallelMng.cc.

◆ sendSerializer() [1/3]

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

Implements Arcane::IParallelMng.

Definition at line 557 of file HybridParallelMng.cc.

◆ sendSerializer() [2/3]

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

Implements Arcane::IParallelMng.

Definition at line 441 of file HybridParallelMng.cc.

◆ sendSerializer() [3/3]

auto Arcane::MessagePassing::HybridParallelMng::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 452 of file HybridParallelMng.cc.

References buildMessage().

Here is the call graph for this function:

◆ sequentialParallelMng()

IParallelMng * Arcane::MessagePassing::HybridParallelMng::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 656 of file HybridParallelMng.cc.

◆ sequentialParallelMngRef()

Ref< IParallelMng > Arcane::MessagePassing::HybridParallelMng::sequentialParallelMngRef ( )
overridevirtual

Implements Arcane::IParallelMng.

Definition at line 665 of file HybridParallelMng.cc.

◆ setReplication()

void Arcane::MessagePassing::HybridParallelMng::setReplication ( IParallelReplication * v)
overrideprotectedvirtual

Sets the Replication Information.

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

Implements Arcane::IParallelMng.

Definition at line 646 of file HybridParallelMng.cc.

◆ stat()

Parallel::IStat * Arcane::MessagePassing::HybridParallelMng::stat ( )
inlineoverrideprotectedvirtual

Statistics manager.

Implements Arcane::IParallelMng.

Definition at line 149 of file HybridParallelMng.h.

◆ threadMng()

IThreadMng * Arcane::MessagePassing::HybridParallelMng::threadMng ( ) const
inlineoverridevirtual

Thread manager.

Implements Arcane::IParallelMng.

Definition at line 93 of file HybridParallelMng.h.

Referenced by build().

Here is the caller graph for this function:

◆ timerMng()

ITimerMng * Arcane::MessagePassing::HybridParallelMng::timerMng ( ) const
inlineoverridevirtual

Timer manager.

Implements Arcane::IParallelMng.

Definition at line 101 of file HybridParallelMng.h.

Referenced by build().

Here is the caller graph for this function:

◆ traceMng()

ITraceMng * Arcane::MessagePassing::HybridParallelMng::traceMng ( ) const
inlineoverridevirtual

Trace manager.

Implements Arcane::IParallelMng.

Definition at line 92 of file HybridParallelMng.h.

Referenced by build(), and createSubParallelMngRef().

Here is the caller graph for this function:

◆ waitAllRequests()

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

Blocks while waiting for the rvalues requests to complete.

Implements Arcane::IParallelMng.

Definition at line 726 of file HybridParallelMng.cc.

◆ worldParallelMng()

IParallelMng * Arcane::MessagePassing::HybridParallelMng::worldParallelMng ( ) const
inlineoverridevirtual

Parallelism manager over all allocated resources.

Implements Arcane::IParallelMng.

Definition at line 94 of file HybridParallelMng.h.

Referenced by build().

Here is the caller graph for this function:

Member Data Documentation

◆ HybridSerializeMessageList

friend Arcane::MessagePassing::HybridParallelMng::HybridSerializeMessageList
private

Definition at line 75 of file HybridParallelMng.h.

◆ m_all_dispatchers

MpiThreadAllDispatcher* Arcane::MessagePassing::HybridParallelMng::m_all_dispatchers = nullptr
private

Definition at line 185 of file HybridParallelMng.h.

◆ m_global_nb_rank

Int32 Arcane::MessagePassing::HybridParallelMng::m_global_nb_rank
private

Total number of global ranks.

Definition at line 178 of file HybridParallelMng.h.

Referenced by commSize().

◆ m_global_rank

Int32 Arcane::MessagePassing::HybridParallelMng::m_global_rank
private

Current processor number.

Definition at line 177 of file HybridParallelMng.h.

Referenced by build(), commRank(), createSubParallelMngRef(), legacyProbe(), and probe().

◆ m_io_mng

IIOMng* Arcane::MessagePassing::HybridParallelMng::m_io_mng
private

Definition at line 171 of file HybridParallelMng.h.

◆ m_is_initialized

bool Arcane::MessagePassing::HybridParallelMng::m_is_initialized
private

true if already initialized

Definition at line 181 of file HybridParallelMng.h.

Referenced by initialize().

◆ m_is_parallel

bool Arcane::MessagePassing::HybridParallelMng::m_is_parallel
private

Definition at line 176 of file HybridParallelMng.h.

◆ m_local_nb_rank

Int32 Arcane::MessagePassing::HybridParallelMng::m_local_nb_rank
private

Number of local ranks.

Definition at line 180 of file HybridParallelMng.h.

Referenced by createSubParallelMngRef().

◆ m_local_rank

Int32 Arcane::MessagePassing::HybridParallelMng::m_local_rank
private

Local rank of the current processor.

Definition at line 179 of file HybridParallelMng.h.

Referenced by barrier(), build(), and createSubParallelMngRef().

◆ m_message_queue

HybridMessageQueue* Arcane::MessagePassing::HybridParallelMng::m_message_queue
private

Definition at line 175 of file HybridParallelMng.h.

◆ m_mpi_parallel_mng

MpiParallelMng* Arcane::MessagePassing::HybridParallelMng::m_mpi_parallel_mng = nullptr
private

Definition at line 184 of file HybridParallelMng.h.

◆ m_parallel_mng_internal

IParallelMngInternal* Arcane::MessagePassing::HybridParallelMng::m_parallel_mng_internal = nullptr
private

Definition at line 190 of file HybridParallelMng.h.

◆ m_parallel_mng_list

Array<HybridParallelMng*>* Arcane::MessagePassing::HybridParallelMng::m_parallel_mng_list = nullptr
private

Definition at line 186 of file HybridParallelMng.h.

◆ m_parent_container_ref

Ref<IParallelMngContainer> Arcane::MessagePassing::HybridParallelMng::m_parent_container_ref
private

Definition at line 188 of file HybridParallelMng.h.

◆ m_replication

IParallelReplication* Arcane::MessagePassing::HybridParallelMng::m_replication
private

Definition at line 174 of file HybridParallelMng.h.

◆ m_sequential_parallel_mng

Ref<IParallelMng> Arcane::MessagePassing::HybridParallelMng::m_sequential_parallel_mng
private

Definition at line 172 of file HybridParallelMng.h.

◆ m_stat

Parallel::IStat* Arcane::MessagePassing::HybridParallelMng::m_stat = nullptr
private

Definition at line 182 of file HybridParallelMng.h.

◆ m_sub_builder_factory

IParallelMngContainerFactory* Arcane::MessagePassing::HybridParallelMng::m_sub_builder_factory = nullptr
private

Definition at line 187 of file HybridParallelMng.h.

◆ m_thread_barrier

IThreadBarrier* Arcane::MessagePassing::HybridParallelMng::m_thread_barrier = nullptr
private

Definition at line 183 of file HybridParallelMng.h.

◆ m_thread_mng

IThreadMng* Arcane::MessagePassing::HybridParallelMng::m_thread_mng
private

Definition at line 169 of file HybridParallelMng.h.

◆ m_timer_mng

ITimerMng* Arcane::MessagePassing::HybridParallelMng::m_timer_mng
private

Definition at line 173 of file HybridParallelMng.h.

◆ m_trace

ITraceMng* Arcane::MessagePassing::HybridParallelMng::m_trace
private

Definition at line 168 of file HybridParallelMng.h.

◆ m_utils_factory

Ref<IParallelMngUtilsFactory> Arcane::MessagePassing::HybridParallelMng::m_utils_factory
private

Definition at line 189 of file HybridParallelMng.h.

◆ m_world_parallel_mng

IParallelMng* Arcane::MessagePassing::HybridParallelMng::m_world_parallel_mng
private

Definition at line 170 of file HybridParallelMng.h.


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