Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::SingleDataSynchronizeBuffer

Implémentation de IDataSynchronizeBuffer pour une donnée. Plus de détails...

#include <arcane/impl/internal/DataSynchronizeBuffer.h>

+ Graphe d'héritage de Arcane::SingleDataSynchronizeBuffer:
+ Graphe de collaboration de Arcane::SingleDataSynchronizeBuffer:

Fonctions membres publiques

 SingleDataSynchronizeBuffer (DataSynchronizeInfo *sync_info, Ref< IBufferCopier > copier)
 
void copyReceiveAsync (Int32 index) final
 Recopie dans les données depuis le buffer de réception du index-ème rang.
 
void copySendAsync (Int32 index) final
 Recopie dans le buffer d'envoi les données du index-ème rang.
 
void setDataView (MutableMemoryView v)
 
MutableMemoryView dataView ()
 Zone mémoire contenant les valeurs de la donnée à synchroniser.
 
void prepareSynchronize (Int32 datatype_size, bool is_compare_sync) override
 Prépare la synchronisation.
 
DataSynchronizeResult finalizeSynchronize ()
 Termine la synchronisation.
 
- Fonctions membres publiques hérités de Arcane::DataSynchronizeBufferBase
Int32 nbRank () const final
 Nombre de rangs.
 
Int32 targetRank (Int32 index) const final
 Rang cible du index-ème rang.
 
bool hasGlobalBuffer () const final
 Indique si les buffers sont globaux.
 
MutableMemoryView receiveBuffer (Int32 index) final
 Buffer de réception pour le index-ème rang.
 
MutableMemoryView sendBuffer (Int32 index) final
 Buffer d'envoi pour le index-ème rang.
 
Int64 receiveDisplacement (Int32 index) const final
 Déplacement (en octets) depuis le début de receiveBuffer() pour le index-ème rang.
 
Int64 sendDisplacement (Int32 index) const final
 Déplacement (en octets) depuis le début de sendBuffer() pour le index-ème rang.
 
MutableMemoryView globalReceiveBuffer () final
 Buffer de réception.
 
MutableMemoryView globalSendBuffer () final
 Buffer d'envoi.
 
Int64 totalReceiveSize () const final
 Taille totale à recevoir en octet.
 
Int64 totalSendSize () const final
 Taille totale à envoyer en octet.
 
void barrier () final
 Attend que les copies (copySendAsync() et copyReceiveAsync()) soient terminées.
 
 DataSynchronizeBufferBase (DataSynchronizeInfo *sync_info, Ref< IBufferCopier > copier)
 
bool isCompareSynchronizedValues () const
 Indique si on compare les valeurs avant/après la synchronisation.
 
void setSynchronizeBuffer (Ref< MemoryBuffer > v)
 
- Fonctions membres publiques hérités de Arcane::IDataSynchronizeBuffer
virtual void copyAllReceive ()
 Recopie toutes les données depuis le buffer de réception.
 
virtual void copyAllSend ()
 Recopie dans le buffer d'envoi toute les données.
 

Attributs privés

MutableMemoryView m_data_view
 Vue sur les données de la variable.
 

Membres hérités additionnels

- Fonctions membres protégées hérités de Arcane::DataSynchronizeBufferBase
void _allocateBuffers (Int32 datatype_size)
 Calcul et alloue les tampons nécessaires aux envois et réceptions pour les synchronisations des variables 1D.
 
void _compute (Int32 datatype_size)
 Calcule les informations pour la synchronisation.
 
- Attributs protégés hérités de Arcane::DataSynchronizeBufferBase
DataSynchronizeInfom_sync_info = nullptr
 
BufferInfo m_ghost_buffer_info
 Buffer pour toutes les données des entités fantômes qui serviront en réception.
 
BufferInfo m_share_buffer_info
 Buffer pour toutes les données des entités partagées qui serviront en envoi.
 
BufferInfo m_compare_sync_buffer_info
 Buffer pour tester si la synchronisation a modifié les valeurs des mailles fantômes.
 
Int32 m_nb_rank = 0
 
bool m_is_compare_sync_values = false
 
Ref< MemoryBufferm_memory
 Buffer contenant les données concaténées en envoi et réception.
 
Ref< IBufferCopierm_buffer_copier
 

Description détaillée

Implémentation de IDataSynchronizeBuffer pour une donnée.

Définition à la ligne 156 du fichier DataSynchronizeBuffer.h.

Documentation des constructeurs et destructeur

◆ SingleDataSynchronizeBuffer()

Arcane::SingleDataSynchronizeBuffer::SingleDataSynchronizeBuffer ( DataSynchronizeInfo sync_info,
Ref< IBufferCopier copier 
)
inline

Définition à la ligne 161 du fichier DataSynchronizeBuffer.h.

Documentation des fonctions membres

◆ copyReceiveAsync()

void Arcane::SingleDataSynchronizeBuffer::copyReceiveAsync ( Int32  index)
finalvirtual

Recopie dans les données depuis le buffer de réception du index-ème rang.

Implémente Arcane::IDataSynchronizeBuffer.

Définition à la ligne 189 du fichier DataSynchronizeBuffer.cc.

Références Arcane::DataSynchronizeBufferBase::BufferInfo::localBuffer(), Arcane::DataSynchronizeBufferBase::BufferInfo::localIds(), et Arcane::DataSynchronizeBufferBase::m_ghost_buffer_info.

◆ copySendAsync()

void Arcane::SingleDataSynchronizeBuffer::copySendAsync ( Int32  index)
finalvirtual

Recopie dans le buffer d'envoi les données du index-ème rang.

Cet appel est équivalent à :

for (Int32 i = 0; i < nb_rank; ++i)
void barrier() final
Attend que les copies (copySendAsync() et copyReceiveAsync()) soient terminées.
void copyReceiveAsync(Int32 index) final
Recopie dans les données depuis le buffer de réception du index-ème rang.

Implémente Arcane::IDataSynchronizeBuffer.

Définition à la ligne 204 du fichier DataSynchronizeBuffer.cc.

Références Arcane::DataSynchronizeBufferBase::BufferInfo::localBuffer(), Arcane::DataSynchronizeBufferBase::BufferInfo::localIds(), et Arcane::DataSynchronizeBufferBase::m_share_buffer_info.

◆ dataView()

MutableMemoryView Arcane::SingleDataSynchronizeBuffer::dataView ( )
inline

Zone mémoire contenant les valeurs de la donnée à synchroniser.

Définition à la ligne 174 du fichier DataSynchronizeBuffer.h.

◆ finalizeSynchronize()

DataSynchronizeResult Arcane::SingleDataSynchronizeBuffer::finalizeSynchronize ( )

Termine la synchronisation.

Compare les valeurs avant/après synchronisation.

Il suffit de comparer bit à bit le buffer de réception avec celui contenant les valeurs avant la synchronisation (m_check_sync_buffer).

Valeurs retournées

a vrai s'il y a des différences.

Définition à la ligne 248 du fichier DataSynchronizeBuffer.cc.

Références ARCANE_FATAL, Arcane::Different, Arcane::DataSynchronizeBufferBase::BufferInfo::globalBuffer(), Arcane::DataSynchronizeBufferBase::m_compare_sync_buffer_info, Arcane::DataSynchronizeBufferBase::m_ghost_buffer_info, et Arcane::Same.

Référencé par Arcane::DataSynchronizeDispatcher::endSynchronize().

◆ prepareSynchronize()

void Arcane::SingleDataSynchronizeBuffer::prepareSynchronize ( Int32  datatype_size,
bool  is_compare_sync 
)
overridevirtual

Prépare la synchronisation.

Prépare la synchronisation et alloue les buffers si nécessaire. datatype_size est la taille (en octet) du type de la donnée. Si is_compare_sync est vrai, on compare après la synchronisation les valeurs des entités fantômes avec leur valeur d'avant la synchronisation.

Il faut avoir appeler setSynchronizeBuffer() au moins une fois avant d'appeler cette méthode pour positionner la zone mémoire allouée.

Implémente Arcane::DataSynchronizeBufferBase.

Définition à la ligne 218 du fichier DataSynchronizeBuffer.cc.

Références Arcane::DataSynchronizeBufferBase::_compute(), Arcane::DataSynchronizeBufferBase::BufferInfo::localBuffer(), Arcane::DataSynchronizeBufferBase::BufferInfo::localIds(), Arcane::DataSynchronizeBufferBase::m_compare_sync_buffer_info, et Arcane::DataSynchronizeBufferBase::nbRank().

Référencé par Arcane::DataSynchronizeDispatcher::beginSynchronize().

◆ setDataView()

void Arcane::SingleDataSynchronizeBuffer::setDataView ( MutableMemoryView  v)
inline

Définition à la ligne 172 du fichier DataSynchronizeBuffer.h.

Documentation des données membres

◆ m_data_view

MutableMemoryView Arcane::SingleDataSynchronizeBuffer::m_data_view
private

Vue sur les données de la variable.

Définition à la ligne 185 du fichier DataSynchronizeBuffer.h.


La documentation de cette classe a été générée à partir des fichiers suivants :