217class SharedMemoryParallelDispatch
218:
public SharedMemoryParallelDispatchBase
222 using BaseClass = SharedMemoryParallelDispatchBase;
234 void resize(
Int64 new_size)
override { m_array_ref.resize(new_size); }
277 ~SharedMemoryParallelDispatch()
override;
278 void finalize()
override;
289 void allReduce(eReduceType op,
Span<Type> send_and_receive_buf)
override;
296 Request send(
Span<const Type> send_buffer,
const PointToPointMessageInfo& message)
override;
297 Request receive(
Span<Type> recv_buffer,
Int32 rank,
bool is_blocked)
override;
298 Request receive(
Span<Type> recv_buffer,
const PointToPointMessageInfo& message)
override;
301 Request nonBlockingBroadcast(
Span<Type> send_buf,
Int32 rank)
override;
312 this->broadcast(
Span<Type>(send_buf), sub_domain);
322 void gather(ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf,
Integer rank)
override
324 this->gather(Span<const Type>(send_buf), Span<Type>(recv_buf), rank);
326 void gatherVariable(ConstArrayView<Type> send_buf, Array<Type>& recv_buf,
Integer rank)
override
328 this->gatherVariable(Span<const Type>(send_buf), recv_buf, rank);
330 void scatterVariable(ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf,
Integer root)
override
332 this->scatterVariable(Span<const Type>(send_buf), Span<Type>(recv_buf), root);
334 void allToAll(ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf,
Integer count)
override
336 this->allToAll(Span<const Type>(send_buf), Span<Type>(recv_buf), count);
342 this->allToAllVariable(Span<const Type>(send_buf), send_count, send_index,
343 Span<Type>(recv_buf), recv_count, recv_index);
345 Request send(ConstArrayView<Type> send_buffer,
Integer proc,
bool is_blocked)
override
347 return this->send(Span<const Type>(send_buffer), proc, is_blocked);
349 Request recv(ArrayView<Type> recv_buffer,
Int32 rank,
bool is_blocked)
override
351 return this->receive(Span<Type>(recv_buffer), rank, is_blocked);
353 void allReduce(eReduceType op, ArrayView<Type> send_buf)
override
355 return this->allReduce(op, Span<Type>(send_buf));
357 void allReduce(eReduceType op, ConstArrayView<Type> send_buf, ArrayView<Type> receive_buf)
override
359 return this->allReduce(op, Span<const Type>(send_buf), Span<Type>(receive_buf));
362 void send(ConstArrayView<Type> send_buffer,
Integer proc)
override;
363 void recv(ArrayView<Type> recv_buffer,
Integer proc)
override;
364 void sendRecv(ConstArrayView<Type> send_buffer, ArrayView<Type> recv_buffer,
Integer proc)
override;
365 Type allReduce(eReduceType op,
Type send_buf)
override;
366 Type scan(eReduceType op,
Type send_buf)
override;
367 void scan(eReduceType op, ArrayView<Type> send_buf)
override;
368 void computeMinMaxSum(
Type val,
Type& min_val,
Type& max_val,
Type& sum_val,
370 Int32& max_rank)
override;
371 void computeMinMaxSum(ConstArrayView<Type> values,
372 ArrayView<Type> min_values,
373 ArrayView<Type> max_values,
374 ArrayView<Type> sum_values,
375 ArrayView<Int32> min_ranks,
376 ArrayView<Int32> max_ranks)
override;
377 ITypeDispatcher<Type>* toArccoreDispatcher()
override {
return this; }
383 ArrayView<SharedMemoryParallelDispatch<Type>*> m_all_dispatchs;
391 void _allReduceOrScan(eReduceType op, Span<const Type> send_buf, Span<Type> receive_buf,
bool is_scan);