13#ifndef ARCANE_IMPL_DATASYNCHRONIZERINFO_H
14#define ARCANE_IMPL_DATASYNCHRONIZERINFO_H
22#include "arcane/core/VariableCollection.h"
73class ARCANE_IMPL_EXPORT VariableSyncInfo
78 VariableSyncInfo(
const VariableSyncInfo& rhs);
119class DataSynchronizeBufferInfoList
121 friend DataSynchronizeInfo;
125 DataSynchronizeBufferInfoList(
const DataSynchronizeInfo* sync_info,
bool is_share)
126 : m_sync_info(sync_info)
151 Int64 m_total_nb_item = 0;
152 const DataSynchronizeInfo* m_sync_info =
nullptr;
171class ARCANE_IMPL_EXPORT DataSynchronizeInfo
174 friend class DataSynchronizeBufferInfoList;
178 static constexpr int SEND = 0;
179 static constexpr int RECEIVE = 1;
183 DataSynchronizeInfo() =
default;
187 DataSynchronizeInfo(
const DataSynchronizeInfo&) =
delete;
188 DataSynchronizeInfo operator=(
const DataSynchronizeInfo&) =
delete;
189 DataSynchronizeInfo(DataSynchronizeInfo&&) =
delete;
190 DataSynchronizeInfo operator=(DataSynchronizeInfo&&) =
delete;
196 return makeRef(
new DataSynchronizeInfo());
203 m_ranks_info.clear();
204 m_communicating_ranks.clear();
206 Int32 size()
const {
return m_ranks_info.size(); }
210 const DataSynchronizeBufferInfoList&
sendInfo()
const {
return m_buffer_infos[SEND]; }
212 const DataSynchronizeBufferInfoList&
receiveInfo()
const {
return m_buffer_infos[RECEIVE]; }
228 void addReference() { ReferenceCounterImpl::addReference(); }
229 void removeReference() { ReferenceCounterImpl::removeReference(); }
233 ARCANE_DEPRECATED_REASON(
"Y2023: do not use")
234 ConstArrayView<VariableSyncInfo> infos()
const {
return m_ranks_info; }
236 ARCANE_DEPRECATED_REASON(
"Y2023: do not use")
237 ArrayView<VariableSyncInfo> infos() {
return m_ranks_info; }
239 ARCANE_DEPRECATED_REASON(
"Y2023: do not use")
240 VariableSyncInfo& operator[](Int32 i) {
return m_ranks_info[i]; }
241 ARCANE_DEPRECATED_REASON(
"Y2023: do not use")
242 const VariableSyncInfo& operator[](Int32 i)
const {
return m_ranks_info[i]; }
244 ARCANE_DEPRECATED_REASON(
"Y2023: do not use")
245 VariableSyncInfo& rankInfo(Int32 i) {
return m_ranks_info[i]; }
246 ARCANE_DEPRECATED_REASON(
"Y2023: do not use")
247 const VariableSyncInfo& rankInfo(Int32 i)
const {
return m_ranks_info[i]; }
251 UniqueArray<Int32> m_communicating_ranks;
252 UniqueArray<VariableSyncInfo> m_ranks_info;
253 std::array<DataSynchronizeBufferInfoList, 2> m_buffer_infos = { { {
this,
true }, {
this,
false } } };
257 DataSynchronizeBufferInfoList& _sendInfo() {
return m_buffer_infos[SEND]; }
258 DataSynchronizeBufferInfoList& _receiveInfo() {
return m_buffer_infos[RECEIVE]; }
Declarations of Arcane's general types.
File containing declarations concerning the message passing model.
Base class for 1D data vectors.
Constant view of an array of type T.
bool m_is_share
If true, it is the send buffer, otherwise it is the receive buffer.
ConstArrayView< Int32 > localIds(Int32 index) const
Local IDs of entities for rank index.
Int64 totalNbItem() const
Total number of items.
UniqueArray< Int64 > m_displacements_base
Offsets in the global buffer for each rank.
Int32 nbItem(Int32 index) const
Number of entities for rank index.
Int64 bufferDisplacement(Int32 index) const
Displacement in the buffer for rank index.
Information necessary to synchronize entities across a group.
Int32 targetRank(Int32 index) const
Rank of the index-th target.
const DataSynchronizeBufferInfoList & receiveInfo() const
Receive (ghost) information.
ConstArrayView< Int32 > communicatingRanks() const
Ranks of all targets.
const DataSynchronizeBufferInfoList & sendInfo() const
Send (shared) information.
Information about the result of a synchronization.
Reference to an instance.
Thread-safe implementation of a reference counter.
1D data vector with value semantics (STL style).
Information about the list of shared/ghost entities for a given rank for a synchronization.
ConstArrayView< Int32 > ghostIds() const
localIds() of entities to receive from rank targetRank()
ConstArrayView< Int32 > shareIds() const
localIds() of entities to send to rank targetRank()
Int32 m_target_rank
Target processor rank.
UniqueArray< Int32 > m_share_ids
localIds() of entities to send to processor m_rank
Int32 nbGhost() const
Number of ghost entities.
Int32 targetRank() const
Target processor rank.
Int32 nbShare() const
Number of shared entities.
UniqueArray< Int32 > m_ghost_ids
localIds() of entities to receive from processor m_rank
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
std::int64_t Int64
Signed integer type of 64 bits.
ConstArrayView< Int32 > Int32ConstArrayView
C equivalent of a 1D array of 32-bit integers.
@ Unknown
Unknown or not initialized.
@ Same
Compares with a reference.
eDataSynchronizeCompareStatus
Comparison of ghost entity values before/after synchronization.
@ Different
Different values before and after synchronization.
@ Unknown
No comparison or unknown result.
auto makeRef(InstanceType *t) -> Ref< InstanceType >
Creates a reference on a pointer.
std::int32_t Int32
Signed integer type of 32 bits.