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

Classe de base de l'implémentation de IDataSynchronizeBuffer. Plus de détails...

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

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

Classes

class  BufferInfo
 

Fonctions membres publiques

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)
 
virtual void prepareSynchronize (Int32 datatype_size, bool is_compare_sync)=0
 Prépare la synchronisation.
 
- Fonctions membres publiques hérités de Arcane::IDataSynchronizeBuffer
virtual void copyReceiveAsync (Int32 index)=0
 Recopie dans les données depuis le buffer de réception du index-ème rang.
 
virtual void copyAllReceive ()
 Recopie toutes les données depuis le buffer de réception.
 
virtual void copySendAsync (Int32 index)=0
 Recopie dans le buffer d'envoi les données du index-ème rang.
 
virtual void copyAllSend ()
 Recopie dans le buffer d'envoi toute les données.
 

Fonctions membres protégées

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

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

Classe de base de l'implémentation de IDataSynchronizeBuffer.

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

Documentation des constructeurs et destructeur

◆ DataSynchronizeBufferBase()

Arcane::DataSynchronizeBufferBase::DataSynchronizeBufferBase ( DataSynchronizeInfo sync_info,
Ref< IBufferCopier copier 
)

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

Documentation des fonctions membres

◆ _allocateBuffers()

void Arcane::DataSynchronizeBufferBase::_allocateBuffers ( Int32  datatype_size)
protected

Calcul et alloue les tampons nécessaires aux envois et réceptions pour les synchronisations des variables 1D.

A faire:
: ne pas converver les tampons pour chaque type de donnée des variables car leur conservation est couteuse en terme de memoire.

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

Références m_compare_sync_buffer_info, m_ghost_buffer_info, m_memory, m_share_buffer_info, Arcane::DataSynchronizeInfo::receiveInfo(), Arcane::DataSynchronizeInfo::sendInfo(), et Arcane::DataSynchronizeBufferInfoList::totalNbItem().

Référencé par _compute().

◆ _compute()

void Arcane::DataSynchronizeBufferBase::_compute ( Int32  datatype_size)
protected

Calcule les informations pour la synchronisation.

Calcul et alloue les tampons nécessaire aux envois et réceptions pour les synchronisations des variables 1D.

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

Références _allocateBuffers(), m_compare_sync_buffer_info, m_ghost_buffer_info, m_share_buffer_info, Arcane::DataSynchronizeInfo::receiveInfo(), et Arcane::DataSynchronizeInfo::sendInfo().

Référencé par Arcane::SingleDataSynchronizeBuffer::prepareSynchronize(), et Arcane::MultiDataSynchronizeBuffer::prepareSynchronize().

◆ barrier()

void Arcane::DataSynchronizeBufferBase::barrier ( )
finalvirtual

Attend que les copies (copySendAsync() et copyReceiveAsync()) soient terminées.

Implémente Arcane::IDataSynchronizeBuffer.

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

◆ globalReceiveBuffer()

MutableMemoryView Arcane::DataSynchronizeBufferBase::globalReceiveBuffer ( )
inlinefinalvirtual

Buffer de réception.

Implémente Arcane::IDataSynchronizeBuffer.

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

◆ globalSendBuffer()

MutableMemoryView Arcane::DataSynchronizeBufferBase::globalSendBuffer ( )
inlinefinalvirtual

Buffer d'envoi.

Implémente Arcane::IDataSynchronizeBuffer.

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

◆ hasGlobalBuffer()

bool Arcane::DataSynchronizeBufferBase::hasGlobalBuffer ( ) const
inlinefinalvirtual

Indique si les buffers sont globaux.

Implémente Arcane::IDataSynchronizeBuffer.

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

◆ isCompareSynchronizedValues()

bool Arcane::DataSynchronizeBufferBase::isCompareSynchronizedValues ( ) const
inline

Indique si on compare les valeurs avant/après la synchronisation.

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

◆ nbRank()

Int32 Arcane::DataSynchronizeBufferBase::nbRank ( ) const
inlinefinalvirtual

Nombre de rangs.

Implémente Arcane::IDataSynchronizeBuffer.

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

Référencé par Arcane::SingleDataSynchronizeBuffer::prepareSynchronize().

◆ prepareSynchronize()

virtual void Arcane::DataSynchronizeBufferBase::prepareSynchronize ( Int32  datatype_size,
bool  is_compare_sync 
)
pure virtual

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émenté dans Arcane::SingleDataSynchronizeBuffer, et Arcane::MultiDataSynchronizeBuffer.

◆ receiveBuffer()

MutableMemoryView Arcane::DataSynchronizeBufferBase::receiveBuffer ( Int32  index)
inlinefinalvirtual

Buffer de réception pour le index-ème rang.

Implémente Arcane::IDataSynchronizeBuffer.

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

◆ receiveDisplacement()

Int64 Arcane::DataSynchronizeBufferBase::receiveDisplacement ( Int32  index) const
inlinefinalvirtual

Déplacement (en octets) depuis le début de receiveBuffer() pour le index-ème rang.

Cette valeur n'est significative que si hasGlobalBuffer() est vrai.

Implémente Arcane::IDataSynchronizeBuffer.

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

◆ sendBuffer()

MutableMemoryView Arcane::DataSynchronizeBufferBase::sendBuffer ( Int32  index)
inlinefinalvirtual

Buffer d'envoi pour le index-ème rang.

Implémente Arcane::IDataSynchronizeBuffer.

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

◆ sendDisplacement()

Int64 Arcane::DataSynchronizeBufferBase::sendDisplacement ( Int32  index) const
inlinefinalvirtual

Déplacement (en octets) depuis le début de sendBuffer() pour le index-ème rang.

Cette valeur n'est significative que si hasGlobalBuffer() est vrai.

Implémente Arcane::IDataSynchronizeBuffer.

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

◆ setSynchronizeBuffer()

void Arcane::DataSynchronizeBufferBase::setSynchronizeBuffer ( Ref< MemoryBuffer v)
inline

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

◆ targetRank()

Int32 Arcane::DataSynchronizeBufferBase::targetRank ( Int32  index) const
finalvirtual

Rang cible du index-ème rang.

Implémente Arcane::IDataSynchronizeBuffer.

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

Références Arcane::DataSynchronizeInfo::targetRank().

◆ totalReceiveSize()

Int64 Arcane::DataSynchronizeBufferBase::totalReceiveSize ( ) const
inlinefinalvirtual

Taille totale à recevoir en octet.

Implémente Arcane::IDataSynchronizeBuffer.

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

◆ totalSendSize()

Int64 Arcane::DataSynchronizeBufferBase::totalSendSize ( ) const
inlinefinalvirtual

Taille totale à envoyer en octet.

Implémente Arcane::IDataSynchronizeBuffer.

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

Documentation des données membres

◆ m_buffer_copier

Ref<IBufferCopier> Arcane::DataSynchronizeBufferBase::m_buffer_copier
protected

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

◆ m_compare_sync_buffer_info

BufferInfo Arcane::DataSynchronizeBufferBase::m_compare_sync_buffer_info
protected

Buffer pour tester si la synchronisation a modifié les valeurs des mailles fantômes.

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

Référencé par _allocateBuffers(), _compute(), Arcane::SingleDataSynchronizeBuffer::finalizeSynchronize(), et Arcane::SingleDataSynchronizeBuffer::prepareSynchronize().

◆ m_ghost_buffer_info

BufferInfo Arcane::DataSynchronizeBufferBase::m_ghost_buffer_info
protected

◆ m_is_compare_sync_values

bool Arcane::DataSynchronizeBufferBase::m_is_compare_sync_values = false
protected

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

◆ m_memory

Ref<MemoryBuffer> Arcane::DataSynchronizeBufferBase::m_memory
protected

Buffer contenant les données concaténées en envoi et réception.

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

Référencé par _allocateBuffers().

◆ m_nb_rank

Int32 Arcane::DataSynchronizeBufferBase::m_nb_rank = 0
protected

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

◆ m_share_buffer_info

BufferInfo Arcane::DataSynchronizeBufferBase::m_share_buffer_info
protected

Buffer pour toutes les données des entités partagées qui serviront en envoi.

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

Référencé par _allocateBuffers(), _compute(), Arcane::SingleDataSynchronizeBuffer::copySendAsync(), et Arcane::MultiDataSynchronizeBuffer::copySendAsync().

◆ m_sync_info

DataSynchronizeInfo* Arcane::DataSynchronizeBufferBase::m_sync_info = nullptr
protected

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


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