Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::IParallelMng Class Referenceabstract

Interface of the parallelism manager for a subdomain. More...

#include <arcane/core/IParallelMng.h>

Inheritance diagram for Arcane::IParallelMng:
Collaboration diagram for Arcane::IParallelMng:

Public Types

typedef Parallel::Request Request
using PointToPointMessageInfo = Parallel::PointToPointMessageInfo
using MessageId = Parallel::MessageId
using MessageSourceInfo = Parallel::MessageSourceInfo
typedef Parallel::eReduceType eReduceType
typedef Parallel::IStat IStat

Public Member Functions

virtual ~IParallelMng ()=default
 Releases resources.
virtual void build ()=0
 Constructs the instance.
virtual bool isParallel () const =0
 Returns true if the execution is parallel.
virtual Int32 commRank () const =0
 Rank of this instance in the communicator.
virtual Int32 commSize () const =0
 Number of instances in the communicator.
virtual void * getMPICommunicator ()=0
 Address of the MPI communicator associated with this manager.
virtual ARCANE_DEPRECATED_120 void * mpiCommunicator ()
 Address of the MPI communicator associated with this manager.
virtual Parallel::Communicator communicator () const =0
 MPI communicator associated with this manager.
virtual Parallel::Communicator machineCommunicator () const
 MPI communicator derived from the communicator communicator() gathering all processes of the compute node.
virtual bool isThreadImplementation () const =0
 Indicates if the implementation uses threads.
virtual bool isHybridImplementation () const =0
 Indicates if the implementation uses hybrid mode.
virtual void setTimeStats (ITimeStats *time_stats)=0
 Sets the statistics manager.
virtual ITimeStatstimeStats () const =0
 Associated statistics manager (can be null).
virtual ITraceMngtraceMng () const =0
 Trace manager.
virtual IThreadMngthreadMng () const =0
 Thread manager.
virtual ITimerMngtimerMng () const =0
 Timer manager.
virtual IIOMngioMng () const =0
 I/O manager.
virtual IParallelMngworldParallelMng () const =0
 Parallelism manager over all allocated resources.
virtual void initialize ()=0
 Initializes the parallelism manager.
virtual ITimeMetricCollectortimeMetricCollector () const =0
 Arccore temporal statistics collector (can be null).
virtual bool isMasterIO () const =0
 true if the instance is a master I/O manager.
virtual Integer masterIORank () const =0
 Rank of the instance managing I/O (for which isMasterIO() is true).
allGather
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 allGather (ISerializer *send_serializer, ISerializer *recv_serializer)=0
gather
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
allGather variable
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
scalar reduction operations
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
vector reduction operations
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
array reduction operations
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
broadcast operations

Sends an array of values to all subdomains.

This operation sends the value array send_buf to all subdomains. The array used is the one whose rank (commRank) is rank. All participating subdomains must call this method with the same parameter rank and have an array send_buf containing the same number of elements.

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 broadcastString (String &str, Int32 rank)=0
virtual void broadcastSerializer (ISerializer *values, Int32 rank)=0
virtual void broadcastMemoryBuffer (ByteArray &bytes, Int32 rank)=0
 Performs a broadcast of a memory region.
message sending operations

Blocking send of an array of values to a subdomain.

Sends the values of array values to subdomain rank. The subdomain must perform a corresponding reception (the subdomain number must be that of this handler and the type and the size of the array must correspond) with the function recvValues(). The send is blocking.

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 sendSerializer (ISerializer *values, Int32 rank)=0
virtual Parallel::Request sendSerializer (ISerializer *values, Int32 rank, ByteArray &bytes)=0
virtual ISerializeMessagecreateSendSerializer (Int32 rank)=0
 Creates a non-blocking message to send serialized data to rank rank.
message receiving operations.
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 void recvSerializer (ISerializer *values, Int32 rank)=0
virtual ISerializeMessagecreateReceiveSerializer (Int32 rank)=0
 Creates a non-blocking message to receive serialized data from rank rank.
virtual void processMessages (ConstArrayView< ISerializeMessage * > messages)=0
 Executes the operations of messages messages.
virtual void processMessages (ConstArrayView< Ref< ISerializeMessage > > messages)=0
 Executes the operations of messages messages.
virtual void freeRequests (ArrayView< Parallel::Request > requests)=0
 Frees the requests.
non-blocking message sending operations

Sends an array of values to rank rank.

Sends the values of array values to the instance of rank rank. The recipient must perform a corresponding reception (whose rank must be that of this handler and the type and the size of the array must correspond) with the function recvValues(). The send is blocking if is_blocking is true, non-blocking if it is false. In the latter case, the returned request must be used in waitAllRequests() or freed by freeRequests().

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
non-blocking message receiving operations.
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
generic message receiving operations
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 receiveSerializer (ISerializer *values, const PointToPointMessageInfo &message)=0
generic message sending operations
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 Request sendSerializer (const ISerializer *values, const PointToPointMessageInfo &message)=0
virtual MessageId probe (const PointToPointMessageInfo &message)=0
 Probes if messages are available.
virtual MessageSourceInfo legacyProbe (const PointToPointMessageInfo &message)=0
 Probes if messages are available.
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
allToAll variable

Performs a variable allToAll operation

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
scan

Performs an algorithm equivalent to MPI_Scan in semantics

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
virtual ISerializeMessageListcreateSerializeMessageList ()=0
 Creates a list to manage 'ISerializeMessage'.
virtual Ref< ISerializeMessageListcreateSerializeMessageListRef ()=0
 Creates a list to manage 'ISerializeMessage'.
synchronization operations and asynchronous operations
virtual void barrier ()=0
 Performs a barrier.
virtual void waitAllRequests (ArrayView< Request > rvalues)=0
 Blocks while waiting for the rvalues requests to complete.
virtual UniqueArray< IntegerwaitSomeRequests (ArrayView< Request > rvalues)=0
 Blocks while waiting for one of the rvalues requests to complete.
virtual UniqueArray< IntegertestSomeRequests (ArrayView< Request > rvalues)=0
 Tests if one of the rvalues requests is complete.

Private Member Functions

 ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS ()
virtual ARCANE_DEPRECATED Integer subDomainId () const final
 Subdomain number associated with this manager.
virtual ARCANE_DEPRECATED Integer nbSubDomain () const final
 Total number of subdomains.

Friends

class ParallelMngUtilsAccessor

various operations

virtual Ref< IParallelMngUtilsFactory_internalUtilsFactory () const =0
 Factory for utility functions.
virtual IParallelMngsequentialParallelMng ()=0
 Returns a sequential parallelism manager.
virtual Ref< IParallelMngsequentialParallelMngRef ()=0
virtual IGetVariablesValuesParallelOperationcreateGetVariablesValuesOperation ()=0
 Returns an operation to retrieve the values of a variable on the entities of another subdomain.
virtual ITransferValuesParallelOperationcreateTransferValuesOperation ()=0
 Returns an operation to transfer values between subdomains.
virtual IParallelExchangercreateExchanger ()=0
 Returns an interface for transferring messages between processors.
virtual IVariableSynchronizercreateSynchronizer (IItemFamily *family)=0
 Returns an interface for synchronizing variables on the group of the family.
virtual IVariableSynchronizercreateSynchronizer (const ItemGroup &group)=0
 Returns an interface for synchronizing variables on the group.
virtual IParallelTopologycreateTopology ()=0
 Creates an instance containing information about the rank topology of this manager.
virtual IParallelReplicationreplication () const =0
 Replication information.
virtual void setReplication (IParallelReplication *v)=0
 Sets the Replication Information.
virtual IParallelMngcreateSubParallelMng (Int32ConstArrayView kept_ranks)=0
 Creates a new parallelism manager for a subset of ranks.
virtual Ref< IParallelMngcreateSubParallelMngRef (Int32ConstArrayView kept_ranks)=0
 Creates a new parallelism manager for a subset of ranks.
virtual Ref< Parallel::IRequestListcreateRequestListRef ()=0
 Creates a request list for this manager.
virtual IStat * stat ()=0
 Statistics manager.
virtual void printStats ()=0
 Prints statistics related to this parallelism manager.
virtual IParallelNonBlockingCollectivenonBlockingCollective () const =0
 Interface for non-blocking collective operations.
virtual IMessagePassingMngmessagePassingMng () const =0
 Associated Arccore message passing manager.
virtual IParallelMngInternal_internalApi ()=0
 Internal Arcane API.

Detailed Description

Interface of the parallelism manager for a subdomain.

This manager provides an interface to access all functionalities related to parallelism.

Several possible implementations exist:

  • sequential mode.
  • parallel mode via MPI
  • parallel mode via threads.
  • mixed MPI/threads parallel mode. The choice of implementation is made when launching the application.

When an operation is collective, all associated managers must participate.

It is possible to create another manager from an instance containing a subset of ranks via createSubParallelMng().

Definition at line 52 of file IParallelMng.h.

Member Typedef Documentation

◆ eReduceType

◆ IStat

typedef Parallel::IStat Arcane::IParallelMng::IStat

Definition at line 71 of file IParallelMng.h.

◆ MessageId

using Arcane::IParallelMng::MessageId = Parallel::MessageId

Definition at line 68 of file IParallelMng.h.

◆ MessageSourceInfo

using Arcane::IParallelMng::MessageSourceInfo = Parallel::MessageSourceInfo

Definition at line 69 of file IParallelMng.h.

◆ PointToPointMessageInfo

using Arcane::IParallelMng::PointToPointMessageInfo = Parallel::PointToPointMessageInfo

Definition at line 67 of file IParallelMng.h.

◆ Request

typedef Parallel::Request Arcane::IParallelMng::Request

Definition at line 66 of file IParallelMng.h.

Member Function Documentation

◆ _internalApi()

virtual IParallelMngInternal * Arcane::IParallelMng::_internalApi ( )
pure virtual

Internal Arcane API.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, Arcane::ParallelMngDispatcher, and Arcane::SequentialParallelMng.

References _internalApi().

Referenced by _internalApi(), Arcane::ParallelMngUtils::isMachineShMemWinAvailable(), and Arcane::Variable::setUsed().

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

◆ _internalUtilsFactory()

virtual Ref< IParallelMngUtilsFactory > Arcane::IParallelMng::_internalUtilsFactory ( ) const
privatepure virtual

Factory for utility functions.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References _internalUtilsFactory().

Referenced by _internalUtilsFactory().

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

◆ allGather()

virtual void Arcane::IParallelMng::allGather ( ISerializer * send_serializer,
ISerializer * recv_serializer )
pure virtual

◆ allGatherVariable()

virtual void Arcane::IParallelMng::allGatherVariable ( ConstArrayView< char > send_buf,
Array< char > & recv_buf )
pure virtual

Performs an all-gather operation across all processors.

This is a collective operation. The number of elements in the array send_buf may be different for each processor. The array recv_buf contains the concatenation of the send_buf arrays from each processor. This array recv_buf may be resized.

References allGatherVariable().

Referenced by Arcane::mesh::FaceUniqueIdBuilder::_computeFacesUniqueIdsParallelV1(), Arcane::Hdf5VariableReaderHelper2::_createCorrespondance(), Arcane::CartesianMeshAMRPatchMng::_shareInfosOfCellsAroundPatch(), allGatherVariable(), Arcane::mesh::ItemFamily::checkUniqueIds(), Arcane::MeshUtils::checkUniqueIdsHashCollective(), Arcane::BasicRayMeshIntersection::compute(), Arcane::UnstructuredMeshUtilities::computeNormal(), Arcane::CartesianMeshAMRPatchMng::createSubLevel(), and Arcane::TransferValuesParallelOperation::transferValues().

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

◆ barrier()

◆ broadcastMemoryBuffer()

virtual void Arcane::IParallelMng::broadcastMemoryBuffer ( ByteArray & bytes,
Int32 rank )
pure virtual

Performs a broadcast of a memory region.

The processor performing the broadcast is given by \id. The array sent is then given by bytes. The processors receiving the array in bytes. This array is allocated automatically, the processors receiving do not need to know the number of bytes to be sent.

Implemented in Arcane::ParallelMngDispatcher, and Arcane::SequentialParallelMng.

Referenced by Arcane::VtkMeshIOService::_readData(), and Arcane::Hdf5VariableReaderHelper2::open().

Here is the caller graph for this function:

◆ build()

virtual void Arcane::IParallelMng::build ( )
pure virtual

Constructs the instance.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

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

Here is the caller graph for this function:

◆ commRank()

virtual Int32 Arcane::IParallelMng::commRank ( ) const
pure virtual

Rank of this instance in the communicator.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

Referenced by Arcane::MEDMeshReader::_broadcastGroups(), Arcane::VariableIOReaderMng::_checkHashFunction(), Arcane::mesh::FaceUniqueIdBuilder2::_computeAndSortBoundaryFaces(), Arcane::mesh::FaceUniqueIdBuilder::_computeFacesUniqueIdsParallelV1(), Arcane::mesh::FaceUniqueIdBuilder::_computeFacesUniqueIdsParallelV2(), Arcane::mesh::FaceUniqueIdBuilder2::_computeParallel(), Arcane::VtkHdfV2DataWriter::_computeWritePartInfo(), Arcane::CartesianMeshCoarsening2::_createCoarseCells2D(), Arcane::CartesianMeshCoarsening2::_createCoarseCells3D(), Arcane::VariableSynchronizerComputeList::_createList(), Arcane::mesh::ParallelAMRConsistency::_gatherFaces(), Arcane::mesh::TiedInterfaceBuilder::_gatherFaces(), Arcane::mesh::ParallelAMRConsistency::_gatherItems(), Arcane::mesh::GhostLayerBuilder2::_markBoundaryItems(), Arcane::mesh::GhostLayerBuilder2::_markBoundaryNodes(), Arcane::ArcaneInitialPartitioner::_mergeConstraints(), Arcane::MetisMeshPartitioner::_partitionMesh(), Arcane::VtkMeshIOService::_readData(), Arcane::VtkMeshIOService::_readFacesMesh(), Arcane::LimaMalippReaderT< ReaderWrapper >::_readMeshPart(), Arcane::MshParallelMeshReader::_readOneElementBlock(), Arcane::LimaCutInfosReader::_readUniqueIndex(), Arcane::MetisMeshPartitioner::_removeEmptyPartsV1(), Arcane::MetisMeshPartitioner::_removeEmptyPartsV2Helper(), Arcane::CartesianMeshAMRPatchMng::_shareInfosOfCellsAroundPatch(), Arcane::mesh::GhostLayerBuilder2::_sortBoundaryNodeList(), Arcane::MetisMeshPartitioner::_writeGraph(), Arcane::mesh::GhostLayerBuilder::addGhostChildFromParent(), Arcane::mesh::GhostLayerBuilder2::addGhostLayers(), Arcane::DumpWEnsight7::beginWrite(), Arcane::ParallelMngDispatcher::broadcastMemoryBuffer(), Arcane::mesh::ItemRefinement::coarsenOneCell(), Arcane::BasicRayMeshIntersection::compute(), Arcane::VariablePrivate::computeComparisonHashCollective(), Arcane::mesh::FaceUniqueIdBuilder2::computeFacesUniqueIdAndOwnerVersion5(), Arcane::mesh::TiedInterfaceBuilder::computeInterfaceConnections(), Arcane::UnstructuredMeshUtilities::computeNormal(), Arcane::CartesianMeshCoarsening::createCoarseCells(), Arcane::SimpleTableReaderWriterUtils::createDirectoryOnlyProcess0(), Arcane::ParallelMngUtilsFactoryBase::createReceiveSerializeMessage(), Arcane::ParallelMngUtilsFactoryBase::createSendSerializeMessage(), Arcane::CartesianMeshAMRPatchMng::createSubLevel(), Arcane::TimeLoopMng::doComputeLoop(), Arcane::MeshUtils::dumpSynchronizerTopologyJSON(), Arcane::mesh::DynamicMeshKindInfos::finalizeMeshChanged(), Arcane::GatherGroup::gatherToMasterIO(), Arcane::mesh::MeshRefinement::init(), Arcane::mesh::BasicParticleExchanger::initialize(), Arcane::MeshPartitionerTester::partitionMesh(), Arcane::XmfMeshReader::readMeshFromFile(), Arcane::CartesianMeshAMRPatchMng::refine(), subDomainId(), Arcane::TransferValuesParallelOperation::transferValues(), and Arcane::Numerics::ParallelCorefinementService::update().

◆ commSize()

virtual Int32 Arcane::IParallelMng::commSize ( ) const
pure virtual

Number of instances in the communicator.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

Referenced by Arcane::mesh::FaceUniqueIdBuilder2::_computeAndSortBoundaryFaces(), Arcane::mesh::FaceUniqueIdBuilder::_computeFacesUniqueIdsParallelV1(), Arcane::mesh::FaceUniqueIdBuilder::_computeFacesUniqueIdsParallelV2(), Arcane::ArcaneLoadBalanceModule::_computeWeights(), Arcane::VtkHdfV2DataWriter::_computeWritePartInfo(), Arcane::VariableSynchronizerComputeList::_createList(), Arcane::mesh::TiedInterfaceBuilder::_gatherAllNodesInfo(), Arcane::mesh::ParallelAMRConsistency::_gatherFaces(), Arcane::mesh::TiedInterfaceBuilder::_gatherFaces(), Arcane::mesh::ParallelAMRConsistency::_gatherItems(), Arcane::MetisMeshPartitioner::_partitionMesh(), Arcane::SubDomain::_printCPUAffinity(), Arcane::LimaMalippReaderT< ReaderWrapper >::_readMeshPart(), Arcane::LimaCutInfosReader::_readUniqueIndex(), Arcane::CartesianMeshAMRPatchMng::_shareInfosOfCellsAroundPatch(), Arcane::mesh::GhostLayerBuilder2::_sortBoundaryNodeList(), Arcane::CheckpointMng::_writeCheckpointInfoFile(), Arcane::MetisMeshPartitioner::_writeGraph(), Arcane::mesh::GhostLayerBuilder::addGhostChildFromParent(), Arcane::mesh::CommonItemGroupFilterer::applyFiltering(), Arcane::Parallel::VariableParallelOperationBase::applyOperation(), Arcane::centralizePartInfo(), Arcane::SimpleTableReaderWriterUtils::createDirectoryOnlyProcess0(), Arcane::CartesianMeshAMRPatchMng::createSubLevel(), Arcane::MessagePassing::dumpDateAndMemoryUsage(), Arcane::MeshUtils::dumpSynchronizerTopologyJSON(), Arcane::MessagePassing::filterCommonStrings(), Arcane::VariableUtilities::filterCommonVariables(), Arcane::GatherGroup::gatherToMasterIO(), Arcane::GetVariablesValuesParallelOperation::getVariableValues(), Arcane::mesh::MeshRefinement::init(), Arcane::SplitSDMeshPartitioner::init(), Arcane::GatherGroup::isNeedGather(), nbSubDomain(), Arcane::ArcaneInitialPartitioner::partitionAndDistributeMeshes(), Arcane::MeshPartitionerTester::partitionMesh(), Arcane::SimpleGridMeshPartitioner::partitionMesh(), Arcane::MshParallelMeshReader::readMeshFromMshFile(), Arcane::ModuleMaster::timeLoopBegin(), and Arcane::Numerics::ParallelCorefinementService::update().

Here is the caller graph for this function:

◆ communicator()

virtual Parallel::Communicator Arcane::IParallelMng::communicator ( ) const
pure virtual

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.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

Referenced by Arcane::MetisMeshPartitioner::_partitionMesh(), Arcane::MetisWrapper::callAdaptiveRepart(), and Arcane::MetisWrapper::callPartKway().

Here is the caller graph for this function:

◆ computeMinMaxSum() [1/2]

virtual void Arcane::IParallelMng::computeMinMaxSum ( char val,
char & min_val,
char & max_val,
char & sum_val,
Int32 & min_rank,
Int32 & max_rank )
pure virtual

Calculates the sum, min, and max of a value in one operation.

Calculates the minimum, maximum, and sum of the value val.

Parameters
valvalue used for the calculation
[out]min_valminimum value
[out]max_valmaximum value
[out]sum_valsum of values
[out]min_rankrank of the processor having the minimum value
[out]max_rankrank of the processor having the maximum value

References computeMinMaxSum().

Referenced by Arcane::MetisMeshPartitioner::_removeEmptyPartsV1(), Arcane::MetisMeshPartitioner::_removeEmptyPartsV2Helper(), Arcane::mesh::BasicParticleExchanger::beginNewExchange(), computeMinMaxSum(), computeMinMaxSum(), Arcane::UnstructuredMeshUtilities::computeNormal(), Arcane::SplitSDMeshPartitioner::ConnexifieDomaine(), Arcane::MessagePassing::HybridParallelMng::createSubParallelMngRef(), Arcane::MessagePassing::dumpDateAndMemoryUsage(), and Arcane::ModuleMaster::timeLoopBegin().

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

◆ computeMinMaxSum() [2/2]

virtual void Arcane::IParallelMng::computeMinMaxSum ( ConstArrayView< char > values,
ArrayView< char > min_values,
ArrayView< char > max_values,
ArrayView< char > sum_values,
ArrayView< Int32 > min_ranks,
ArrayView< Int32 > max_ranks )
pure virtual

Calculates the sum, min, and max of a value in one operation.

Calculates the minimum, maximum, and sum of the value val.

Parameters
valvalue used for the calculation
[out]min_valminimum value
[out]max_valmaximum value
[out]sum_valsum of values
[out]min_rankrank of the processor having the minimum value
[out]max_rankrank of the processor having the maximum value

References computeMinMaxSum().

Here is the call graph for this function:

◆ createExchanger()

virtual IParallelExchanger * Arcane::IParallelMng::createExchanger ( )
pure virtual

Returns an interface for transferring messages between processors.

The returned instance must be destroyed by the delete operator.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References createExchanger().

Referenced by createExchanger().

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

◆ createGetVariablesValuesOperation()

virtual IGetVariablesValuesParallelOperation * Arcane::IParallelMng::createGetVariablesValuesOperation ( )
pure virtual

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.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References createGetVariablesValuesOperation().

Referenced by createGetVariablesValuesOperation().

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

◆ createReceiveSerializer()

virtual ISerializeMessage * Arcane::IParallelMng::createReceiveSerializer ( Int32 rank)
pure virtual

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

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

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References createReceiveSerializer().

Referenced by createReceiveSerializer().

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

◆ createRequestListRef()

virtual Ref< Parallel::IRequestList > Arcane::IParallelMng::createRequestListRef ( )
pure virtual

Creates a request list for this manager.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References createRequestListRef().

Referenced by createRequestListRef().

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

◆ createSendSerializer()

virtual ISerializeMessage * Arcane::IParallelMng::createSendSerializer ( Int32 rank)
pure virtual

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

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

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References createSendSerializer().

Referenced by createSendSerializer().

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

◆ createSerializeMessageList()

virtual ISerializeMessageList * Arcane::IParallelMng::createSerializeMessageList ( )
pure virtual

Creates a list to manage 'ISerializeMessage'.

Deprecated
Use createSerializeMessageListRef() instead.

Implemented in Arcane::ParallelMngDispatcher.

References createSerializeMessageList().

Referenced by createSerializeMessageList(), and Arcane::Numerics::ParallelCorefinementService::update().

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

◆ createSerializeMessageListRef()

virtual Ref< ISerializeMessageList > Arcane::IParallelMng::createSerializeMessageListRef ( )
pure virtual

Creates a list to manage 'ISerializeMessage'.

Implemented in Arcane::ParallelMngDispatcher.

References createSerializeMessageListRef().

Referenced by createSerializeMessageListRef().

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

◆ createSubParallelMng()

virtual IParallelMng * Arcane::IParallelMng::createSubParallelMng ( Int32ConstArrayView kept_ranks)
pure virtual

Creates a new parallelism manager for a subset of ranks.

Deprecated
Use createSubParallelMngRef() instead

Implemented in Arcane::ParallelMngDispatcher.

References createSubParallelMng().

Referenced by createSubParallelMng().

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

◆ createSubParallelMngRef()

virtual Ref< IParallelMng > Arcane::IParallelMng::createSubParallelMngRef ( Int32ConstArrayView kept_ranks)
pure virtual

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.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, and Arcane::ParallelMngDispatcher.

References createSubParallelMngRef().

Referenced by createSubParallelMngRef().

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

◆ createSynchronizer() [1/2]

virtual IVariableSynchronizer * Arcane::IParallelMng::createSynchronizer ( const ItemGroup & group)
pure virtual

Returns an interface for synchronizing variables on the group.

The returned instance must be destroyed by the delete operator.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References createSynchronizer().

Here is the call graph for this function:

◆ createSynchronizer() [2/2]

virtual IVariableSynchronizer * Arcane::IParallelMng::createSynchronizer ( IItemFamily * family)
pure virtual

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

The returned instance must be destroyed by the delete operator.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References createSynchronizer().

Referenced by createSynchronizer(), and createSynchronizer().

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

◆ createTopology()

virtual IParallelTopology * Arcane::IParallelMng::createTopology ( )
pure virtual

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.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References createTopology().

Referenced by createTopology().

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

◆ createTransferValuesOperation()

virtual ITransferValuesParallelOperation * Arcane::IParallelMng::createTransferValuesOperation ( )
pure virtual

Returns an operation to transfer values between subdomains.

The returned instance must be destroyed by the delete operator.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References createTransferValuesOperation().

Referenced by createTransferValuesOperation().

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

◆ freeRequests()

virtual void Arcane::IParallelMng::freeRequests ( ArrayView< Parallel::Request > requests)
pure virtual

Frees the requests.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References freeRequests().

Referenced by freeRequests().

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

◆ gatherVariable()

virtual void Arcane::IParallelMng::gatherVariable ( ConstArrayView< char > send_buf,
Array< char > & recv_buf,
Int32 rank )
pure virtual

Performs an all-gather operation across all processors.

This is a collective operation. The number of elements in the array send_buf may be different for each processor. The array recv_buf contains the concatenation of the send_buf arrays from each processor. This array recv_buf may be resized for the processor of rank rank.

References gatherVariable().

Referenced by Arcane::VariablePrivate::computeComparisonHashCollective(), Arcane::MeshUtils::dumpSynchronizerTopologyJSON(), and gatherVariable().

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

◆ getMPICommunicator()

virtual void * Arcane::IParallelMng::getMPICommunicator ( )
pure virtual

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*).

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References mpiCommunicator().

Referenced by Arcane::Hdf5Utils::HProperty::createFilePropertyMPIIO(), and mpiCommunicator().

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

◆ initialize()

virtual void Arcane::IParallelMng::initialize ( )
pure virtual

◆ ioMng()

virtual IIOMng * Arcane::IParallelMng::ioMng ( ) const
pure virtual

I/O manager.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

Referenced by Arcane::LimaCutInfosReader::_readUniqueIndex().

Here is the caller graph for this function:

◆ isHybridImplementation()

virtual bool Arcane::IParallelMng::isHybridImplementation ( ) const
pure virtual

Indicates if the implementation uses hybrid mode.

The implementation uses mixed MPI/thread mode.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

◆ isMasterIO()

virtual bool Arcane::IParallelMng::isMasterIO ( ) const
pure virtual

◆ isParallel()

virtual bool Arcane::IParallelMng::isParallel ( ) const
pure virtual

Returns true if the execution is parallel.

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

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

Referenced by Arcane::VariableIOWriterMng::_generateMeshesMetaData(), Arcane::MshMeshReader::_readMeshFromNewMshFile(), Arcane::LimaCutInfosReader::_readUniqueIndex(), Arcane::mesh::GhostLayerBuilder::addGhostChildFromParent(), Arcane::mesh::GhostLayerBuilder2::addGhostLayers(), Arcane::DumpWEnsight7::beginWrite(), Arcane::BasicRayMeshIntersection::compute(), Arcane::mesh::FaceUniqueIdBuilder2::computeFacesUniqueIdAndOwnerVersion5(), Arcane::ArcaneBasicVerifierService::doVerifFromReferenceFile(), Arcane::mesh::DynamicMeshKindInfos::finalizeMeshChanged(), Arcane::GetVariablesValuesParallelOperation::getVariableValues(), Arcane::mesh::AsyncParticleExchanger::initialize(), Arcane::ArcaneBasicCheckpointService::notifyBeginWrite(), Arcane::ArcaneVerifierModule::onExit(), Arcane::MeshReaderMng::readMesh(), Arcane::XmfMeshReader::readMeshFromFile(), Arcane::MshParallelMeshReader::readMeshFromMshFile(), Arcane::Materials::MeshMaterialVariableSynchronizer::recompute(), Arcane::TransferValuesParallelOperation::transferValues(), and Arcane::Numerics::ParallelCorefinementService::update().

Here is the caller graph for this function:

◆ isThreadImplementation()

virtual bool Arcane::IParallelMng::isThreadImplementation ( ) const
pure virtual

Indicates if the implementation uses threads.

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

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

Referenced by Arcane::MetisMeshPartitioner::_partitionMesh(), Arcane::GatherGroup::gatherToMasterIO(), and Arcane::GatherGroup::isNeedGather().

Here is the caller graph for this function:

◆ legacyProbe()

virtual MessageSourceInfo Arcane::IParallelMng::legacyProbe ( const PointToPointMessageInfo & message)
pure virtual

Probes if messages are available.

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

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References legacyProbe().

Referenced by legacyProbe().

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

◆ machineCommunicator()

virtual Parallel::Communicator Arcane::IParallelMng::machineCommunicator ( ) const
inlinevirtual

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 in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

Definition at line 146 of file IParallelMng.h.

◆ masterIORank()

virtual Integer Arcane::IParallelMng::masterIORank ( ) const
pure virtual

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

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

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

Referenced by Arcane::SubDomain::_printCPUAffinity(), Arcane::LimaMalippReaderT< ReaderWrapper >::_readMeshPart(), Arcane::centralizePartInfo(), Arcane::VariablePrivate::computeComparisonHashCollective(), Arcane::Hdf5VariableReaderHelper2::open(), and Arcane::MshParallelMeshReader::readMeshFromMshFile().

Here is the caller graph for this function:

◆ messagePassingMng()

virtual IMessagePassingMng * Arcane::IParallelMng::messagePassingMng ( ) const
pure virtual

Associated Arccore message passing manager.

Implemented in Arcane::ParallelMngDispatcher.

References messagePassingMng().

Referenced by messagePassingMng(), and Arcane::TransferValuesParallelOperation::transferValues().

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

◆ mpiCommunicator()

void * Arcane::IParallelMng::mpiCommunicator ( )
virtual

Address of the MPI communicator associated with this manager.

Deprecated
Use getMPICommunicator() instead.

Definition at line 51 of file Parallel.cc.

References getMPICommunicator().

Referenced by getMPICommunicator().

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

◆ nbSubDomain()

virtual ARCANE_DEPRECATED Integer Arcane::IParallelMng::nbSubDomain ( ) const
inlinefinalprivatevirtual

Total number of subdomains.

Definition at line 96 of file IParallelMng.h.

References commSize().

Here is the call graph for this function:

◆ nonBlockingCollective()

virtual IParallelNonBlockingCollective * Arcane::IParallelMng::nonBlockingCollective ( ) const
pure virtual

Interface for non-blocking collective operations.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References nonBlockingCollective().

Referenced by Arcane::mesh::AsyncParticleExchanger::initialize(), and nonBlockingCollective().

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

◆ printStats()

virtual void Arcane::IParallelMng::printStats ( )
pure virtual

Prints statistics related to this parallelism manager.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References printStats().

Referenced by printStats().

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

◆ probe()

virtual MessageId Arcane::IParallelMng::probe ( const PointToPointMessageInfo & message)
pure virtual

Probes if messages are available.

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

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References probe().

Referenced by probe().

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

◆ processMessages() [1/2]

virtual void Arcane::IParallelMng::processMessages ( ConstArrayView< ISerializeMessage * > messages)
pure virtual

Executes the operations of messages messages.

Implemented in Arcane::ParallelMngDispatcher, and Arcane::SequentialParallelMng.

References processMessages().

Referenced by processMessages(), and processMessages().

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

◆ processMessages() [2/2]

virtual void Arcane::IParallelMng::processMessages ( ConstArrayView< Ref< ISerializeMessage > > messages)
pure virtual

Executes the operations of messages messages.

Implemented in Arcane::ParallelMngDispatcher.

References processMessages().

Here is the call graph for this function:

◆ receive()

virtual Request Arcane::IParallelMng::receive ( Span< char > values,
const PointToPointMessageInfo & message )
pure virtual

Receives message message, array values

References receive().

Referenced by receive().

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

◆ recv() [1/2]

virtual void Arcane::IParallelMng::recv ( ArrayView< char > values,
Int32 rank )
pure virtual

Receives array values from rank rank

References recv().

Referenced by Arcane::mesh::FaceUniqueIdBuilder2::_computeAndSortBoundaryFaces(), Arcane::VariableSynchronizerComputeList::_createList(), Arcane::LimaMalippReaderT< ReaderWrapper >::_readMeshPart(), Arcane::MshParallelMeshReader::_readOneElementBlock(), Arcane::LimaCutInfosReader::_readUniqueIndex(), Arcane::mesh::GhostLayerBuilder2::_sortBoundaryNodeList(), Arcane::centralizePartInfo(), Arcane::GatherGroup::gatherToMasterIO(), recv(), and recv().

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

◆ recv() [2/2]

virtual Request Arcane::IParallelMng::recv ( ArrayView< char > values,
Int32 rank,
bool is_blocking )
pure virtual

Receives array values from subdomain rank

References recv().

Here is the call graph for this function:

◆ replication()

virtual IParallelReplication * Arcane::IParallelMng::replication ( ) const
pure virtual

Replication information.

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

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References replication().

Referenced by Arcane::CheckpointMng::_writeCheckpointInfoFile(), Arcane::mesh::DynamicMeshChecker::checkValidReplication(), Arcane::UnstructuredMeshUtilities::partitionAndExchangeMeshWithReplication(), Arcane::VariablePrivate::replicaParallelMng(), replication(), and Arcane::ArcaneSession::setLogAndErrorFiles().

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

◆ send()

virtual Request Arcane::IParallelMng::send ( Span< const char > values,
const PointToPointMessageInfo & message )
pure virtual

Sends message message with the values of array values

◆ sendSerializer()

virtual Parallel::Request Arcane::IParallelMng::sendSerializer ( ISerializer * values,
Int32 rank,
ByteArray & bytes )
pure virtual

◆ sequentialParallelMng()

virtual IParallelMng * Arcane::IParallelMng::sequentialParallelMng ( )
pure virtual

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.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References sequentialParallelMng().

Referenced by Arcane::VariableIOWriterMng::_generateMeshesMetaData(), Arcane::MeshReaderMng::readMesh(), Arcane::MshParallelMeshReader::readMeshFromMshFile(), and sequentialParallelMng().

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

◆ setReplication()

virtual void Arcane::IParallelMng::setReplication ( IParallelReplication * v)
pure virtual

Sets the Replication Information.

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

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References setReplication().

Referenced by setReplication().

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

◆ setTimeStats()

virtual void Arcane::IParallelMng::setTimeStats ( ITimeStats * time_stats)
pure virtual

Sets the statistics manager.

Implemented in Arcane::ParallelMngDispatcher.

◆ stat()

virtual IStat * Arcane::IParallelMng::stat ( )
pure virtual

Statistics manager.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References stat().

Referenced by Arcane::SubDomain::setIsInitialized(), stat(), and Arcane::Materials::ItemMaterialVariableScalar< DataType >::synchronize().

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

◆ subDomainId()

virtual ARCANE_DEPRECATED Integer Arcane::IParallelMng::subDomainId ( ) const
inlinefinalprivatevirtual

Subdomain number associated with this manager.

Definition at line 93 of file IParallelMng.h.

References commRank().

Here is the call graph for this function:

◆ testSomeRequests()

virtual UniqueArray< Integer > Arcane::IParallelMng::testSomeRequests ( ArrayView< Request > rvalues)
pure virtual

Tests if one of the rvalues requests is complete.

Returns an array of indices of completed requests.

Implemented in Arcane::MpiParallelMng, Arcane::ParallelMngDispatcher, and Arcane::SequentialParallelMng.

References testSomeRequests().

Referenced by testSomeRequests().

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

◆ threadMng()

virtual IThreadMng * Arcane::IParallelMng::threadMng ( ) const
pure virtual

◆ timeMetricCollector()

virtual ITimeMetricCollector * Arcane::IParallelMng::timeMetricCollector ( ) const
pure virtual

Arccore temporal statistics collector (can be null).

Implemented in Arcane::ParallelMngDispatcher.

◆ timerMng()

virtual ITimerMng * Arcane::IParallelMng::timerMng ( ) const
pure virtual

Timer manager.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

Referenced by Arcane::Materials::ItemMaterialVariableScalar< DataType >::synchronize().

Here is the caller graph for this function:

◆ timeStats()

virtual ITimeStats * Arcane::IParallelMng::timeStats ( ) const
pure virtual

Associated statistics manager (can be null).

Implemented in Arcane::ParallelMngDispatcher.

Referenced by Arcane::mesh::MeshCompactMng::beginCompact(), Arcane::GetVariablesValuesParallelOperation::getVariableValues(), Arcane::UnstructuredMeshUtilities::partitionAndExchangeMeshWithReplication(), and Arcane::TransferValuesParallelOperation::transferValues().

Here is the caller graph for this function:

◆ traceMng()

◆ waitAllRequests()

virtual void Arcane::IParallelMng::waitAllRequests ( ArrayView< Request > rvalues)
pure virtual

Blocks while waiting for the rvalues requests to complete.

Implemented in Arcane::MessagePassing::HybridParallelMng, Arcane::MessagePassing::SharedMemoryParallelMng, Arcane::MpiParallelMng, and Arcane::SequentialParallelMng.

References waitAllRequests().

Referenced by Arcane::mesh::FaceUniqueIdBuilder2::_computeAndSortBoundaryFaces(), Arcane::VariableSynchronizerComputeList::_createList(), Arcane::mesh::GhostLayerBuilder2::_sortBoundaryNodeList(), Arcane::MeshPartitionerBase::dumpObject(), Arcane::GatherGroup::gatherToMasterIO(), and waitAllRequests().

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

◆ waitSomeRequests()

virtual UniqueArray< Integer > Arcane::IParallelMng::waitSomeRequests ( ArrayView< Request > rvalues)
pure virtual

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

Returns an array of indices of completed requests.

Implemented in Arcane::MpiParallelMng, Arcane::ParallelMngDispatcher, and Arcane::SequentialParallelMng.

References waitSomeRequests().

Referenced by waitSomeRequests().

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

◆ worldParallelMng()

virtual IParallelMng * Arcane::IParallelMng::worldParallelMng ( ) const
pure virtual

◆ ParallelMngUtilsAccessor

friend class ParallelMngUtilsAccessor
friend

Definition at line 56 of file IParallelMng.h.


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