Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::MpiParallelDispatchT< Type > Class Template Reference

Message interface for type Type. More...

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

Inheritance diagram for Arcane::MpiParallelDispatchT< Type >:
Collaboration diagram for Arcane::MpiParallelDispatchT< Type >:

Classes

class  MinMaxSumInfo

Public Types

typedef Parallel::Request Request
typedef Parallel::eReduceType eReduceType
using PointToPointMessageInfo = Parallel::PointToPointMessageInfo
Public Types inherited from Arcane::IParallelDispatchT< Type >
using Request = Parallel::Request
using eReduceType = Parallel::eReduceType
using PointToPointMessageInfo = Parallel::PointToPointMessageInfo

Public Member Functions

ARCANE_MPI_EXPORT MpiParallelDispatchT (ITraceMng *tm, IMessagePassingMng *parallel_mng, MpiAdapter *adapter, MpiDatatype *datatype)
ARCANE_MPI_EXPORT void finalize () override
void broadcast (ArrayView< Type > send_buf, Int32 rank) override
void allGather (ConstArrayView< Type > send_buf, ArrayView< Type > recv_buf) override
void allGatherVariable (ConstArrayView< Type > send_buf, Array< Type > &recv_buf) override
void gather (ConstArrayView< Type > send_buf, ArrayView< Type > recv_buf, Int32 rank) override
void gatherVariable (ConstArrayView< Type > send_buf, Array< Type > &recv_buf, Int32 rank) override
void scatterVariable (ConstArrayView< Type > send_buf, ArrayView< Type > recv_buf, Int32 root) override
void allToAll (ConstArrayView< Type > send_buf, ArrayView< Type > recv_buf, Integer count) override
void allToAllVariable (ConstArrayView< Type > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< Type > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index) override
Request send (ConstArrayView< Type > send_buffer, Int32 rank, bool is_blocked) override
Request send (Span< const Type > recv_buffer, const PointToPointMessageInfo &message) override
Request recv (ArrayView< Type > recv_buffer, Int32 rank, bool is_blocked) override
Request receive (Span< Type > recv_buffer, const PointToPointMessageInfo &message) override
void send (ConstArrayView< Type > send_buffer, Int32 rank) override
void recv (ArrayView< Type > recv_buffer, Int32 rank) override
Type allReduce (eReduceType op, Type send_buf) override
void allReduce (eReduceType op, ArrayView< Type > send_buf) override
ARCANE_MPI_EXPORT void sendRecv (ConstArrayView< Type > send_buffer, ArrayView< Type > recv_buffer, Int32 rank) override
ARCANE_MPI_EXPORT Type scan (eReduceType op, Type send_buf) override
ARCANE_MPI_EXPORT void scan (eReduceType op, ArrayView< Type > send_buf) override
ARCANE_MPI_EXPORT void computeMinMaxSum (Type val, Type &min_val, Type &max_val, Type &sum_val, Int32 &min_rank, Int32 &max_rank) override
ARCANE_MPI_EXPORT void computeMinMaxSum (ConstArrayView< Type > values, ArrayView< Type > min_values, ArrayView< Type > max_values, ArrayView< Type > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks) override
ITypeDispatcher< Type > * toArccoreDispatcher () override
MpiDatatypedatatype () const
virtual ARCANE_MPI_EXPORT void computeMinMaxSumNoInit (Type &min_val, Type &max_val, Type &sum_val, Int32 &min_rank, Int32 &max_rank)
Public Member Functions inherited from Arcane::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Constructs an accessor via the trace manager m.
 TraceAccessor (const TraceAccessor &rhs)
 Copy constructor.
TraceAccessoroperator= (const TraceAccessor &rhs)
 Copy assignment operator.
virtual ~TraceAccessor ()
 Frees resources.
ITraceMngtraceMng () const
 Trace manager.
TraceMessage info () const
 Flow for an information message.
TraceMessage pinfo () const
 Flow for a parallel information message.
TraceMessage info (char category) const
 Flow for an information message of a given category.
TraceMessage pinfo (char category) const
 Flow for a parallel information message of a given category.
TraceMessage info (bool v) const
 Flow for an information message.
TraceMessage warning () const
 Flow for a warning message.
TraceMessage pwarning () const
TraceMessage error () const
 Flow for an error message.
TraceMessage perror () const
TraceMessage log () const
 Flow for a log message.
TraceMessage plog () const
 Flow for a log message.
TraceMessage logdate () const
 Flow for a log message preceded by the date.
TraceMessage fatal () const
 Flow for a fatal error message.
TraceMessage pfatal () const
 Flow for a parallel fatal error message.
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flow for a debug message.
Trace::eDebugLevel configDbgLevel () const
 Debug level of the configuration file.
TraceMessage info (Int32 verbose_level) const
 Flow for an information message of a given level.
TraceMessage linfo () const
 Flow for an information message with the local information level of this instance.
TraceMessage linfo (Int32 relative_level) const
 Flow for an information message with the local information level of this instance.
void fatalMessage (const StandaloneTraceMessage &o) const
Public Member Functions inherited from Arcane::ReferenceCounterImpl
void addReference ()
void removeReference ()
void _internalAddReference ()
bool _internalRemoveReference ()

Private Member Functions

 ARCCORE_INTERNAL_DEFINE_REFERENCE_COUNTED_INCLASS_METHODS ()
void _initialize ()
MPI_Datatype _mpiDatatype ()
MpiAdapter_adapter ()
MPI_Op _mpiReduceOperator (eReduceType rt)

Static Private Member Functions

static void ARCANE_MPIOP_CALL _MinMaxSumOperator (void *a, void *b, int *len, MPI_Datatype *type)

Private Attributes

MP::Mpi::MpiTypeDispatcher< Type > * m_mp_dispatcher
MPI_Datatype m_min_max_sum_datatype
MPI_Op m_min_max_sum_operator

Additional Inherited Members

Protected Member Functions inherited from Arcane::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
Int32 _localVerboseLevel () const

Detailed Description

template<class Type>
class Arcane::MpiParallelDispatchT< Type >

Message interface for type Type.

Definition at line 46 of file MpiParallelDispatch.h.

Member Typedef Documentation

◆ eReduceType

template<class Type>
typedef Parallel::eReduceType Arcane::MpiParallelDispatchT< Type >::eReduceType

Definition at line 69 of file MpiParallelDispatch.h.

◆ PointToPointMessageInfo

template<class Type>
using Arcane::MpiParallelDispatchT< Type >::PointToPointMessageInfo = Parallel::PointToPointMessageInfo

Definition at line 70 of file MpiParallelDispatch.h.

◆ Request

template<class Type>
typedef Parallel::Request Arcane::MpiParallelDispatchT< Type >::Request

Definition at line 68 of file MpiParallelDispatch.h.

Constructor & Destructor Documentation

◆ MpiParallelDispatchT()

template<class Type>
Arcane::MpiParallelDispatchT< Type >::MpiParallelDispatchT ( ITraceMng * tm,
IMessagePassingMng * parallel_mng,
MpiAdapter * adapter,
MpiDatatype * datatype )

Definition at line 49 of file MpiParallelDispatch.cc.

◆ ~MpiParallelDispatchT()

template<class Type>
Arcane::MpiParallelDispatchT< Type >::~MpiParallelDispatchT ( )
override

Definition at line 62 of file MpiParallelDispatch.cc.

Member Function Documentation

◆ _adapter()

template<class Type>
MpiAdapter * Arcane::MpiParallelDispatchT< Type >::_adapter ( )
private

Definition at line 274 of file MpiParallelDispatch.cc.

◆ _initialize()

template<class Type>
void Arcane::MpiParallelDispatchT< Type >::_initialize ( )
private

Definition at line 88 of file MpiParallelDispatch.cc.

◆ _MinMaxSumOperator()

template<class Type>
void ARCANE_MPIOP_CALL Arcane::MpiParallelDispatchT< Type >::_MinMaxSumOperator ( void * a,
void * b,
int * len,
MPI_Datatype * type )
staticprivate

Definition at line 114 of file MpiParallelDispatch.cc.

◆ _mpiDatatype()

template<class Type>
MPI_Datatype Arcane::MpiParallelDispatchT< Type >::_mpiDatatype ( )
private

Definition at line 256 of file MpiParallelDispatch.cc.

◆ _mpiReduceOperator()

template<class Type>
MPI_Op Arcane::MpiParallelDispatchT< Type >::_mpiReduceOperator ( eReduceType rt)
private

Definition at line 265 of file MpiParallelDispatch.cc.

◆ allGather()

template<class Type>
void Arcane::MpiParallelDispatchT< Type >::allGather ( ConstArrayView< Type > send_buf,
ArrayView< Type > recv_buf )
inlineoverridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 87 of file MpiParallelDispatch.h.

◆ allGatherVariable()

template<class Type>
void Arcane::MpiParallelDispatchT< Type >::allGatherVariable ( ConstArrayView< Type > send_buf,
Array< Type > & recv_buf )
inlineoverridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 91 of file MpiParallelDispatch.h.

◆ allReduce() [1/2]

template<class Type>
void Arcane::MpiParallelDispatchT< Type >::allReduce ( eReduceType op,
ArrayView< Type > send_buf )
inlineoverridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 145 of file MpiParallelDispatch.h.

◆ allReduce() [2/2]

template<class Type>
Type Arcane::MpiParallelDispatchT< Type >::allReduce ( eReduceType op,
Type send_buf )
inlineoverridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 141 of file MpiParallelDispatch.h.

◆ allToAll()

template<class Type>
void Arcane::MpiParallelDispatchT< Type >::allToAll ( ConstArrayView< Type > send_buf,
ArrayView< Type > recv_buf,
Integer count )
inlineoverridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 107 of file MpiParallelDispatch.h.

◆ allToAllVariable()

template<class Type>
void Arcane::MpiParallelDispatchT< Type >::allToAllVariable ( ConstArrayView< Type > send_buf,
Int32ConstArrayView send_count,
Int32ConstArrayView send_index,
ArrayView< Type > recv_buf,
Int32ConstArrayView recv_count,
Int32ConstArrayView recv_index )
inlineoverridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 111 of file MpiParallelDispatch.h.

◆ broadcast()

template<class Type>
void Arcane::MpiParallelDispatchT< Type >::broadcast ( ArrayView< Type > send_buf,
Int32 rank )
inlineoverridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 83 of file MpiParallelDispatch.h.

◆ computeMinMaxSum() [1/2]

template<class Type>
void Arcane::MpiParallelDispatchT< Type >::computeMinMaxSum ( ConstArrayView< Type > values,
ArrayView< Type > min_values,
ArrayView< Type > max_values,
ArrayView< Type > sum_values,
ArrayView< Int32 > min_ranks,
ArrayView< Int32 > max_ranks )
overridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 186 of file MpiParallelDispatch.cc.

◆ computeMinMaxSum() [2/2]

template<class Type>
void Arcane::MpiParallelDispatchT< Type >::computeMinMaxSum ( Type val,
Type & min_val,
Type & max_val,
Type & sum_val,
Int32 & min_rank,
Int32 & max_rank )
overridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 171 of file MpiParallelDispatch.cc.

◆ computeMinMaxSumNoInit()

template<class Type>
void Arcane::MpiParallelDispatchT< Type >::computeMinMaxSumNoInit ( Type & min_val,
Type & max_val,
Type & sum_val,
Int32 & min_rank,
Int32 & max_rank )
virtual

Definition at line 148 of file MpiParallelDispatch.cc.

◆ datatype()

template<class Type>
MpiDatatype * Arcane::MpiParallelDispatchT< Type >::datatype ( ) const

Definition at line 283 of file MpiParallelDispatch.cc.

◆ finalize()

template<class Type>
void Arcane::MpiParallelDispatchT< Type >::finalize ( )
overridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 72 of file MpiParallelDispatch.cc.

◆ gather()

template<class Type>
void Arcane::MpiParallelDispatchT< Type >::gather ( ConstArrayView< Type > send_buf,
ArrayView< Type > recv_buf,
Int32 rank )
inlineoverridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 95 of file MpiParallelDispatch.h.

◆ gatherVariable()

template<class Type>
void Arcane::MpiParallelDispatchT< Type >::gatherVariable ( ConstArrayView< Type > send_buf,
Array< Type > & recv_buf,
Int32 rank )
inlineoverridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 99 of file MpiParallelDispatch.h.

◆ receive()

template<class Type>
Request Arcane::MpiParallelDispatchT< Type >::receive ( Span< Type > recv_buffer,
const PointToPointMessageInfo & message )
inlineoverridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 129 of file MpiParallelDispatch.h.

◆ recv() [1/2]

template<class Type>
void Arcane::MpiParallelDispatchT< Type >::recv ( ArrayView< Type > recv_buffer,
Int32 rank )
inlineoverridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 137 of file MpiParallelDispatch.h.

◆ recv() [2/2]

template<class Type>
Request Arcane::MpiParallelDispatchT< Type >::recv ( ArrayView< Type > recv_buffer,
Int32 rank,
bool is_blocked )
inlineoverridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 125 of file MpiParallelDispatch.h.

◆ scan() [1/2]

template<class Type>
void Arcane::MpiParallelDispatchT< Type >::scan ( eReduceType op,
ArrayView< Type > send_buf )
overridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 243 of file MpiParallelDispatch.cc.

◆ scan() [2/2]

template<class Type>
Type Arcane::MpiParallelDispatchT< Type >::scan ( eReduceType op,
Type send_buf )
overridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 231 of file MpiParallelDispatch.cc.

◆ scatterVariable()

template<class Type>
void Arcane::MpiParallelDispatchT< Type >::scatterVariable ( ConstArrayView< Type > send_buf,
ArrayView< Type > recv_buf,
Int32 root )
inlineoverridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 103 of file MpiParallelDispatch.h.

◆ send() [1/3]

template<class Type>
void Arcane::MpiParallelDispatchT< Type >::send ( ConstArrayView< Type > send_buffer,
Int32 rank )
inlineoverridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 133 of file MpiParallelDispatch.h.

◆ send() [2/3]

template<class Type>
Request Arcane::MpiParallelDispatchT< Type >::send ( ConstArrayView< Type > send_buffer,
Int32 rank,
bool is_blocked )
inlineoverridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 117 of file MpiParallelDispatch.h.

◆ send() [3/3]

template<class Type>
Request Arcane::MpiParallelDispatchT< Type >::send ( Span< const Type > recv_buffer,
const PointToPointMessageInfo & message )
inlineoverridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 121 of file MpiParallelDispatch.h.

◆ sendRecv()

template<class Type>
void Arcane::MpiParallelDispatchT< Type >::sendRecv ( ConstArrayView< Type > send_buffer,
ArrayView< Type > recv_buffer,
Int32 rank )
overridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 219 of file MpiParallelDispatch.cc.

◆ toArccoreDispatcher()

template<class Type>
ITypeDispatcher< Type > * Arcane::MpiParallelDispatchT< Type >::toArccoreDispatcher ( )
overridevirtual

Implements Arcane::IParallelDispatchT< Type >.

Definition at line 289 of file MpiParallelDispatch.cc.

Member Data Documentation

◆ m_min_max_sum_datatype

template<class Type>
MPI_Datatype Arcane::MpiParallelDispatchT< Type >::m_min_max_sum_datatype
private

Definition at line 181 of file MpiParallelDispatch.h.

◆ m_min_max_sum_operator

template<class Type>
MPI_Op Arcane::MpiParallelDispatchT< Type >::m_min_max_sum_operator
private

Definition at line 182 of file MpiParallelDispatch.h.

◆ m_mp_dispatcher

template<class Type>
MP::Mpi::MpiTypeDispatcher<Type>* Arcane::MpiParallelDispatchT< Type >::m_mp_dispatcher
private

Definition at line 177 of file MpiParallelDispatch.h.


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