13#ifndef ARCANE_IMPL_DATASYNCHRONIZERINFO_H
14#define ARCANE_IMPL_DATASYNCHRONIZERINFO_H
22#include "arcane/core/VariableCollection.h"
71class ARCANE_IMPL_EXPORT VariableSyncInfo
76 VariableSyncInfo(
const VariableSyncInfo& rhs);
116class DataSynchronizeBufferInfoList
118 friend DataSynchronizeInfo;
122 DataSynchronizeBufferInfoList(
const DataSynchronizeInfo* sync_info,
bool is_share)
123 : m_sync_info(sync_info)
148 Int64 m_total_nb_item = 0;
149 const DataSynchronizeInfo* m_sync_info =
nullptr;
167class ARCANE_IMPL_EXPORT DataSynchronizeInfo
170 friend class DataSynchronizeBufferInfoList;
174 static constexpr int SEND = 0;
175 static constexpr int RECEIVE = 1;
179 DataSynchronizeInfo() =
default;
183 DataSynchronizeInfo(
const DataSynchronizeInfo&) =
delete;
184 DataSynchronizeInfo operator=(
const DataSynchronizeInfo&) =
delete;
185 DataSynchronizeInfo(DataSynchronizeInfo&&) =
delete;
186 DataSynchronizeInfo operator=(DataSynchronizeInfo&&) =
delete;
192 return makeRef(
new DataSynchronizeInfo());
197 void clear() { m_ranks_info.clear(); m_communicating_ranks.clear(); }
198 Int32 size()
const {
return m_ranks_info.size(); }
202 const DataSynchronizeBufferInfoList&
sendInfo()
const {
return m_buffer_infos[SEND]; }
204 const DataSynchronizeBufferInfoList&
receiveInfo()
const {
return m_buffer_infos[RECEIVE]; }
220 void addReference() { ReferenceCounterImpl::addReference(); }
221 void removeReference() { ReferenceCounterImpl::removeReference(); }
225 ARCANE_DEPRECATED_REASON(
"Y2023: do not use")
226 ConstArrayView<VariableSyncInfo> infos()
const {
return m_ranks_info; }
228 ARCANE_DEPRECATED_REASON(
"Y2023: do not use")
229 ArrayView<VariableSyncInfo> infos() {
return m_ranks_info; }
231 ARCANE_DEPRECATED_REASON(
"Y2023: do not use")
232 VariableSyncInfo& operator[](Int32 i) {
return m_ranks_info[i]; }
233 ARCANE_DEPRECATED_REASON(
"Y2023: do not use")
234 const VariableSyncInfo& operator[](Int32 i)
const {
return m_ranks_info[i]; }
236 ARCANE_DEPRECATED_REASON(
"Y2023: do not use")
237 VariableSyncInfo& rankInfo(Int32 i) {
return m_ranks_info[i]; }
238 ARCANE_DEPRECATED_REASON(
"Y2023: do not use")
239 const VariableSyncInfo& rankInfo(Int32 i)
const {
return m_ranks_info[i]; }
243 UniqueArray<Int32> m_communicating_ranks;
244 UniqueArray<VariableSyncInfo> m_ranks_info;
245 std::array<DataSynchronizeBufferInfoList, 2> m_buffer_infos = { { {
this,
true }, {
this,
false } } };
249 DataSynchronizeBufferInfoList& _sendInfo() {
return m_buffer_infos[SEND]; }
250 DataSynchronizeBufferInfoList& _receiveInfo() {
return m_buffer_infos[RECEIVE]; }
Déclarations des types généraux de Arcane.
Fichier contenant les déclarations concernant le modèle de programmation par échange de message.
Tableau d'items de types quelconques.
Vue constante d'un tableau de type T.
bool m_is_share
Si vrai, il s'agit du buffer d'envoi, sinon de réception.
ConstArrayView< Int32 > localIds(Int32 index) const
Numéros locaux des entités pour le rang index.
Int64 totalNbItem() const
Nombre total d'éléments.
UniqueArray< Int64 > m_displacements_base
Offsets dans le buffer global pour chaque rang.
Int32 nbItem(Int32 index) const
Nombre d'entités pour le rang index.
Int64 bufferDisplacement(Int32 index) const
Déplacement dans le buffer du rang index.
Informations nécessaires pour synchroniser les entités sur un groupe.
Int32 targetRank(Int32 index) const
Rang de la index-ème cible.
const DataSynchronizeBufferInfoList & receiveInfo() const
Informations de réception (fantômes)
ConstArrayView< Int32 > communicatingRanks() const
Rangs de toutes les cibles.
const DataSynchronizeBufferInfoList & sendInfo() const
Informations d'envoi (partagées)
Informations sur le résultat d'une synchronisation.
Référence à une instance.
Implémentation thread-safe d'un compteur de référence.
Vecteur 1D de données avec sémantique par valeur (style STL).
Informations sur la liste des entités partagées/fantômes pour un rang donné pour une synchronisation.
ConstArrayView< Int32 > ghostIds() const
localIds() des entités à réceptionner du rang targetRank()
ConstArrayView< Int32 > shareIds() const
localIds() des entités à envoyer au rang targetRank()
Int32 m_target_rank
Rang du processeur cible.
UniqueArray< Int32 > m_share_ids
localIds() des entités à envoyer au processeur #m_rank
Int32 nbGhost() const
Nombre d'entités fantômes.
Int32 targetRank() const
Rang du processeur cible.
Int32 nbShare() const
Nombre d'entités partagées.
UniqueArray< Int32 > m_ghost_ids
localIds() des entités à réceptionner du processeur #m_rank
@ Unknown
Accessibilité inconnue.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int64_t Int64
Type entier signé sur 64 bits.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
@ Same
Compare avec une référence.
eDataSynchronizeCompareStatus
Comparaison des valeurs des entités fantômes avant/après une synchronisation.
@ Different
Valeurs différentes avant et après la synchronisation.
@ Unknown
Pas de comparaison ou résultat inconnue.
auto makeRef(InstanceType *t) -> Ref< InstanceType >
Créé une référence sur un pointeur.
std::int32_t Int32
Type entier signé sur 32 bits.