223class SharedMemoryParallelDispatch
224:
public SharedMemoryParallelDispatchBase
228 using BaseClass = SharedMemoryParallelDispatchBase;
240 void resize(
Int64 new_size)
override { m_array_ref.resize(new_size); }
283 ~SharedMemoryParallelDispatch()
override;
284 void finalize()
override;
295 void allReduce(eReduceType op,
Span<Type> send_and_receive_buf)
override;
302 Request send(
Span<const Type> send_buffer,
const PointToPointMessageInfo& message)
override;
303 Request receive(
Span<Type> recv_buffer,
Int32 rank,
bool is_blocked)
override;
304 Request receive(
Span<Type> recv_buffer,
const PointToPointMessageInfo& message)
override;
307 Request nonBlockingBroadcast(
Span<Type> send_buf,
Int32 rank)
override;
318 this->broadcast(
Span<Type>(send_buf), sub_domain);
328 void gather(ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf,
Integer rank)
override
330 this->gather(Span<const Type>(send_buf), Span<Type>(recv_buf), rank);
332 void gatherVariable(ConstArrayView<Type> send_buf, Array<Type>& recv_buf,
Integer rank)
override
334 this->gatherVariable(Span<const Type>(send_buf), recv_buf, rank);
336 void scatterVariable(ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf,
Integer root)
override
338 this->scatterVariable(Span<const Type>(send_buf), Span<Type>(recv_buf), root);
340 void allToAll(ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf,
Integer count)
override
342 this->allToAll(Span<const Type>(send_buf), Span<Type>(recv_buf), count);
348 this->allToAllVariable(Span<const Type>(send_buf), send_count, send_index,
349 Span<Type>(recv_buf), recv_count, recv_index);
351 Request send(ConstArrayView<Type> send_buffer,
Integer proc,
bool is_blocked)
override
353 return this->send(Span<const Type>(send_buffer), proc, is_blocked);
355 Request recv(ArrayView<Type> recv_buffer,
Int32 rank,
bool is_blocked)
override
357 return this->receive(Span<Type>(recv_buffer), rank, is_blocked);
359 void allReduce(eReduceType op, ArrayView<Type> send_buf)
override
361 return this->allReduce(op, Span<Type>(send_buf));
363 void allReduce(eReduceType op, ConstArrayView<Type> send_buf, ArrayView<Type> receive_buf)
override
365 return this->allReduce(op, Span<const Type>(send_buf), Span<Type>(receive_buf));
368 void send(ConstArrayView<Type> send_buffer,
Integer proc)
override;
369 void recv(ArrayView<Type> recv_buffer,
Integer proc)
override;
370 void sendRecv(ConstArrayView<Type> send_buffer, ArrayView<Type> recv_buffer,
Integer proc)
override;
371 Type allReduce(eReduceType op,
Type send_buf)
override;
372 Type scan(eReduceType op,
Type send_buf)
override;
373 void scan(eReduceType op, ArrayView<Type> send_buf)
override;
374 void computeMinMaxSum(
Type val,
Type& min_val,
Type& max_val,
Type& sum_val,
376 Int32& max_rank)
override;
377 void computeMinMaxSum(ConstArrayView<Type> values,
378 ArrayView<Type> min_values,
379 ArrayView<Type> max_values,
380 ArrayView<Type> sum_values,
381 ArrayView<Int32> min_ranks,
382 ArrayView<Int32> max_ranks)
override;
383 ITypeDispatcher<Type>* toArccoreDispatcher()
override {
return this; }
389 ArrayView<SharedMemoryParallelDispatch<Type>*> m_all_dispatchs;
397 void _allReduceOrScan(eReduceType op, Span<const Type> send_buf, Span<Type> receive_buf,
bool is_scan);