Arcane  v3.16.8.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 (ITraceMng *tm, 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 (bool is_compare_sync) override
 Prépare la synchronisation.
 
DataSynchronizeResult finalizeSynchronize ()
 Termine la synchronisation.
 
- Fonctions membres publiques hérités de Arcane::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Construit un accesseur via le gestionnaire de trace m.
 
 TraceAccessor (const TraceAccessor &rhs)
 Constructeur par recopie.
 
TraceAccessoroperator= (const TraceAccessor &rhs)
 Opérateur de recopie.
 
virtual ~TraceAccessor ()
 Libère les ressources.
 
ITraceMngtraceMng () const
 Gestionnaire de trace.
 
TraceMessage info () const
 Flot pour un message d'information.
 
TraceMessage pinfo () const
 Flot pour un message d'information en parallèle.
 
TraceMessage info (char category) const
 Flot pour un message d'information d'une catégorie donnée.
 
TraceMessage pinfo (char category) const
 Flot pour un message d'information parallèle d'une catégorie donnée.
 
TraceMessage info (bool v) const
 Flot pour un message d'information.
 
TraceMessage warning () const
 Flot pour un message d'avertissement.
 
TraceMessage pwarning () const
 
TraceMessage error () const
 Flot pour un message d'erreur.
 
TraceMessage perror () const
 
TraceMessage log () const
 Flot pour un message de log.
 
TraceMessage plog () const
 Flot pour un message de log.
 
TraceMessage logdate () const
 Flot pour un message de log précédé de la date.
 
TraceMessage fatal () const
 Flot pour un message d'erreur fatale.
 
TraceMessage pfatal () const
 Flot pour un message d'erreur fatale en parallèle.
 
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flot pour un message de debug.
 
Trace::eDebugLevel configDbgLevel () const
 Niveau debug du fichier de configuration.
 
TraceMessage info (Int32 verbose_level) const
 Flot pour un message d'information d'un niveau donné
 
TraceMessage linfo () const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
TraceMessage linfo (Int32 relative_level) const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
void fatalMessage (const StandaloneTraceMessage &o) const
 
- 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.
 
FixedArray< Int32, 1 > m_datatype_sizes
 Tableau contenant les tailles des types de donnée.
 

Membres hérités additionnels

- Fonctions membres protégées hérités de Arcane::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
 
Int32 _localVerboseLevel () const
 
- Fonctions membres protégées hérités de Arcane::DataSynchronizeBufferBase
void _allocateBuffers ()
 Calcul et alloue les tampons nécessaires aux envois et réceptions pour les synchronisations des variables 1D.
 
void _compute (ConstArrayView< Int32 > datatype_sizes)
 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 190 du fichier DataSynchronizeBuffer.h.

Documentation des constructeurs et destructeur

◆ SingleDataSynchronizeBuffer()

Arcane::SingleDataSynchronizeBuffer::SingleDataSynchronizeBuffer ( ITraceMng * tm,
DataSynchronizeInfo * sync_info,
Ref< IBufferCopier > copier )
inline

Définition à la ligne 196 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 295 du fichier DataSynchronizeBuffer.cc.

Références dataView(), et Arcane::DataSynchronizeBufferBase::m_ghost_buffer_info.

+ Voici le graphe d'appel pour cette fonction :

◆ 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.
std::int32_t Int32
Type entier signé sur 32 bits.

Implémente Arcane::IDataSynchronizeBuffer.

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

Références dataView(), et Arcane::DataSynchronizeBufferBase::m_share_buffer_info.

+ Voici le graphe d'appel pour cette fonction :

◆ dataView()

MutableMemoryView Arcane::SingleDataSynchronizeBuffer::dataView ( )
inline

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

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

Références m_data_view.

Référencé par copyReceiveAsync(), copySendAsync(), et prepareSynchronize().

+ Voici le graphe des appelants de cette fonction :

◆ 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 356 du fichier DataSynchronizeBuffer.cc.

Références ARCANE_FATAL, Arcane::ConstMemoryView::bytes(), Arcane::SpanImpl< T, SizeType, Extent, MinValue >::data(), Arcane::Different, Arcane::DataSynchronizeBufferBase::m_compare_sync_buffer_info, Arcane::DataSynchronizeBufferBase::m_ghost_buffer_info, Arcane::Same, et Arcane::SpanImpl< T, SizeType, Extent, MinValue >::size().

+ Voici le graphe d'appel pour cette fonction :

◆ prepareSynchronize()

void Arcane::SingleDataSynchronizeBuffer::prepareSynchronize ( bool is_compare_sync)
overridevirtual

Prépare la synchronisation.

Prépare la synchronisation et alloue les buffers si nécessaire.

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 appelé 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 324 du fichier DataSynchronizeBuffer.cc.

Références Arcane::DataSynchronizeBufferBase::_compute(), dataView(), Arcane::DataSynchronizeBufferBase::m_compare_sync_buffer_info, m_datatype_sizes, et Arcane::DataSynchronizeBufferBase::nbRank().

+ Voici le graphe d'appel pour cette fonction :

◆ setDataView()

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

Définition à la ligne 208 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 225 du fichier DataSynchronizeBuffer.h.

Référencé par dataView().

◆ m_datatype_sizes

FixedArray<Int32, 1> Arcane::SingleDataSynchronizeBuffer::m_datatype_sizes
private

Tableau contenant les tailles des types de donnée.

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

Référencé par prepareSynchronize().


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