13#ifndef ARCANE_IMPL_IDATASYNCHRONIZEBUFFER_H
14#define ARCANE_IMPL_IDATASYNCHRONIZEBUFFER_H
18#include "arcane/utils/ArrayView.h"
Generic buffer for data synchronization.
virtual MutableMemoryView sendBuffer(Int32 index)=0
Send buffer for the index-th rank.
virtual void barrier()=0
Waits until the copies (copySendAsync() and copyReceiveAsync()) are finished.
virtual bool hasGlobalBuffer() const =0
Indicates if the buffers are global.
virtual void copyAllSend()
Copies all data into the send buffer.
virtual Int64 totalSendSize() const =0
Total size to send in bytes.
virtual Int64 sendDisplacement(Int32 index) const =0
Displacement (in bytes) from the start of sendBuffer() for the index-th rank.
virtual void copyAllReceive()
Copies all data from the receive buffer.
virtual void copyReceiveAsync(Int32 index)=0
Copies into the data from the receive buffer of the index-th rank.
virtual MutableMemoryView globalReceiveBuffer()=0
Receive buffer.
virtual MutableMemoryView globalSendBuffer()=0
Send buffer.
virtual void copySendAsync(Int32 index)=0
Copies the data of the index-th rank into the send buffer.
virtual MutableMemoryView receiveBuffer(Int32 index)=0
Receive buffer for the index-th rank.
virtual Int32 nbRank() const =0
Number of ranks.
virtual Int32 targetRank(Int32 index) const =0
Target rank of the index-th rank.
virtual Int64 receiveDisplacement(Int32 index) const =0
Displacement (in bytes) from the start of receiveBuffer() for the index-th rank.
virtual Int64 totalReceiveSize() const =0
Total size to receive in bytes.
Mutable view on a contiguous memory region containing fixed-size elements.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
std::int64_t Int64
Signed integer type of 64 bits.
std::int32_t Int32
Signed integer type of 32 bits.