40class ARCANE_CORE_EXPORT ParallelNonBlockingCollectiveDispatcher
45 explicit ParallelNonBlockingCollectiveDispatcher(
IParallelMng* pm);
46 ~ParallelNonBlockingCollectiveDispatcher()
override;
65#ifdef ARCANE_REAL_NOT_BUILTIN
85#define ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(field, type) \
88 virtual Request allGather(ConstArrayView<type> send_buf, ArrayView<type> recv_buf); \
89 virtual Request gather(ConstArrayView<type> send_buf, ArrayView<type> recv_buf, Integer rank); \
90 virtual Request allGatherVariable(ConstArrayView<type> send_buf, Array<type>& recv_buf); \
91 virtual Request gatherVariable(ConstArrayView<type> send_buf, Array<type>& recv_buf, Integer rank); \
92 virtual Request scatterVariable(ConstArrayView<type> send_buf, ArrayView<type> recv_buf, Integer root); \
93 virtual Request allReduce(eReduceType rt, ConstArrayView<type> send_buf, ArrayView<type> v); \
94 virtual Request broadcast(ArrayView<type> send_buf, Int32 rank); \
95 virtual Request allToAll(ConstArrayView<type> send_buf, ArrayView<type> recv_buf, Integer count); \
96 virtual Request allToAllVariable(ConstArrayView<type> send_buf, Int32ConstArrayView send_count, \
97 Int32ConstArrayView send_index, ArrayView<type> recv_buf, \
98 Int32ConstArrayView recv_count, Int32ConstArrayView recv_index); \
102 IParallelNonBlockingCollectiveDispatchT<type>* field;
104 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_char,
char)
105 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_unsigned_char,
unsigned char)
106 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_signed_char,
signed char)
107 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_short,
short)
108 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_unsigned_short,
unsigned short)
109 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_int,
int)
110 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_unsigned_int,
unsigned int)
111 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_long,
long)
112 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_unsigned_long,
unsigned long)
113 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_long_long,
long long)
114 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_unsigned_long_long,
unsigned long long)
115 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_float,
float)
116 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_double,
double)
117 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_long_double,
long double)
118#ifdef ARCANE_REAL_NOT_BUILTIN
119 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_real,
Real)
121 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_real2,
Real2)
122 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_real3,
Real3)
123 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_real2x2,
Real2x2)
124 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_real3x3,
Real3x3)
125 ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_hpreal,
HPReal)
127#undef ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE
142#ifdef ARCANE_REAL_NOT_BUILTIN