13#ifndef ARCANE_IMPL_DATASYNCHRONIZEBUFFER_H
14#define ARCANE_IMPL_DATASYNCHRONIZEBUFFER_H
18#include "arcane/utils/MemoryView.h"
19#include "arcane/utils/Array.h"
20#include "arcane/utils/SmallArray.h"
21#include "arcane/utils/TraceAccessor.h"
23#include "arcane/impl/IDataSynchronizeBuffer.h"
30class DataSynchronizeResult;
31class DataSynchronizeInfo;
32class DataSynchronizeBufferInfoList;
57 Int64 displacement(Int32 index)
const;
60 Int64
totalSize()
const {
return m_memory_view.bytes().size(); }
65 void checkValid()
const
73 Int32 m_datatype_size = 0;
80 Int32 targetRank(Int32 index)
const final;
86 Int64
receiveDisplacement(Int32 index)
const final {
return m_ghost_buffer_info.displacement(index); }
87 Int64
sendDisplacement(Int32 index)
const final {
return m_share_buffer_info.displacement(index); }
104 bool isCompareSynchronizedValues()
const {
return m_is_compare_sync_values; }
143 bool m_is_compare_sync_values =
false;
167 void copyReceiveAsync(Int32 index)
final;
168 void copySendAsync(Int32 index)
final;
208 void copyReceiveAsync(Int32 index)
final;
209 void copySendAsync(Int32 index)
final;
#define ARCANE_CHECK_POINTER(ptr)
Macro retournant le pointeur ptr s'il est non nul ou lancant une exception s'il est nul.
Int64 totalSize() const
Taille totale en octet du buffer global.
MutableMemoryView globalBuffer()
Buffer global.
Classe de base de l'implémentation de IDataSynchronizeBuffer.
Int64 receiveDisplacement(Int32 index) const final
Déplacement (en octets) depuis le début de receiveBuffer() pour le index-ème rang.
virtual void prepareSynchronize(Int32 datatype_size, bool is_compare_sync)=0
Prépare la synchronisation.
BufferInfo m_compare_sync_buffer_info
Buffer pour tester si la synchronisation a modifié les valeurs des mailles fantômes.
Int32 nbRank() const final
Nombre de rangs.
Int64 sendDisplacement(Int32 index) const final
Déplacement (en octets) depuis le début de sendBuffer() pour le index-ème rang.
BufferInfo m_share_buffer_info
Buffer pour toutes les données des entités partagées qui serviront en envoi.
MutableMemoryView globalReceiveBuffer() final
Buffer de réception.
Int64 totalSendSize() const final
Taille totale à envoyer en octet.
MutableMemoryView globalSendBuffer() final
Buffer d'envoi.
MutableMemoryView receiveBuffer(Int32 index) final
Buffer de réception pour le index-ème rang.
Int64 totalReceiveSize() const final
Taille totale à recevoir en octet.
BufferInfo m_ghost_buffer_info
Buffer pour toutes les données des entités fantômes qui serviront en réception.
Ref< MemoryBuffer > m_memory
Buffer contenant les données concaténées en envoi et réception.
MutableMemoryView sendBuffer(Int32 index) final
Buffer d'envoi pour le index-ème rang.
bool hasGlobalBuffer() const final
Indique si les buffers sont globaux.
Informations pour les message d'envoi (share) ou de réception (ghost)
Informations nécessaires pour synchroniser les entités sur un groupe.
Informations sur le résultat d'une synchronisation.
Interface pour copier des éléments entre deux zones avec indexation.
Buffer générique pour la synchronisation de données.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Implémentation de IDataSynchronizeBuffer pour plusieurs données.
SmallArray< MutableMemoryView > m_data_views
Vue sur les données de la variable.
Implémentation de IDataSynchronizeBuffer pour une donnée.
MutableMemoryView m_data_view
Vue sur les données de la variable.
MutableMemoryView dataView()
Zone mémoire contenant les valeurs de la donnée à synchroniser.
Interface du gestionnaire de traces.
Référence à une instance.
Classe d'accès aux traces.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Represents an in-memory output byte stream.