13#ifndef ARCANE_IMPL_DATASYNCHRONIZERINFO_H
14#define ARCANE_IMPL_DATASYNCHRONIZERINFO_H
18#include "arcane/utils/UniqueArray.h"
19#include "arcane/utils/Ref.h"
24#include "arcane/core/VariableCollection.h"
26#include "arcane/impl/IDataSynchronizeImplementation.h"
94 Int32
nbShare()
const {
return m_share_ids.size(); }
96 Int32
nbGhost()
const {
return m_ghost_ids.size(); }
108 Int32 m_target_rank = A_NULL_RANK;
134 Int32 nbRank()
const {
return m_displacements_base.
size(); }
142 Int32
nbItem(Int32 index)
const;
147 Int64 m_total_nb_item = 0;
149 bool m_is_share =
false;
172 static constexpr int SEND = 0;
173 static constexpr int RECEIVE = 1;
195 void clear() { m_ranks_info.clear(); m_communicating_ranks.clear(); }
196 Int32 size()
const {
return m_ranks_info.size(); }
205 Int32
targetRank(Int32 index)
const {
return m_ranks_info[index].targetRank(); }
218 void addReference() { ReferenceCounterImpl::addReference(); }
219 void removeReference() { ReferenceCounterImpl::removeReference(); }
223 ARCANE_DEPRECATED_REASON(
"Y2023: do not use")
224 ConstArrayView<VariableSyncInfo> infos()
const {
return m_ranks_info; }
226 ARCANE_DEPRECATED_REASON(
"Y2023: do not use")
227 ArrayView<VariableSyncInfo> infos() {
return m_ranks_info; }
229 ARCANE_DEPRECATED_REASON(
"Y2023: do not use")
230 VariableSyncInfo& operator[](
Int32 i) {
return m_ranks_info[i]; }
231 ARCANE_DEPRECATED_REASON(
"Y2023: do not use")
232 const VariableSyncInfo& operator[](
Int32 i)
const {
return m_ranks_info[i]; }
234 ARCANE_DEPRECATED_REASON(
"Y2023: do not use")
235 VariableSyncInfo& rankInfo(
Int32 i) {
return m_ranks_info[i]; }
236 ARCANE_DEPRECATED_REASON(
"Y2023: do not use")
237 const VariableSyncInfo& rankInfo(
Int32 i)
const {
return m_ranks_info[i]; }
241 UniqueArray<Int32> m_communicating_ranks;
242 UniqueArray<VariableSyncInfo> m_ranks_info;
243 std::array<DataSynchronizeBufferInfoList, 2> m_buffer_infos = { { {
this,
true }, {
this,
false } } };
247 DataSynchronizeBufferInfoList& _sendInfo() {
return m_buffer_infos[SEND]; }
248 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.
Informations pour les message d'envoi (share) ou de réception (ghost)
ConstArrayView< Int32 > localIds(Int32 index) const
Numéros locaux des entités pour le rang index.
Int64 totalNbItem() const
Nombre total d'éléments.
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)
Int32ConstArrayView communicatingRanks() const
Rangs de toutes les cibles.
const DataSynchronizeBufferInfoList & sendInfo() const
Informations d'envoi (partagées)
Informations sur le résultat d'une synchronisation.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
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()
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
Integer size() const
Nombre d'éléments du vecteur.
Vue constante d'un tableau de type T.
Implémentation thread-safe d'un compteur de référence.
@ Unknown
Accessibilité inconnue.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
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.
@ Same
Même valeurs avant et après la synchronisation.