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

Implémentation de IDataSynchronizeBuffer pour plusieurs données. Plus de détails...

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

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

Fonctions membres publiques

 MultiDataSynchronizeBuffer (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 setNbData (Int32 nb_data)
 
void setDataView (Int32 index, MutableMemoryView v)
 
void prepareSynchronize (Int32 datatype_size, bool is_compare_sync) override
 Prépare la synchronisation.
 
- Fonctions membres publiques hérités de Arccore::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

SmallArray< MutableMemoryViewm_data_views
 Vue sur les données de la variable.
 

Membres hérités additionnels

- Fonctions membres protégées hérités de Arccore::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
 
Int32 _localVerboseLevel () const
 
- 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 plusieurs données.

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

Documentation des constructeurs et destructeur

◆ MultiDataSynchronizeBuffer()

Arcane::MultiDataSynchronizeBuffer::MultiDataSynchronizeBuffer ( ITraceMng tm,
DataSynchronizeInfo sync_info,
Ref< IBufferCopier copier 
)
inline

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

Documentation des fonctions membres

◆ copyReceiveAsync()

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

◆ copySendAsync()

void Arcane::MultiDataSynchronizeBuffer::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 308 du fichier DataSynchronizeBuffer.cc.

Références Arcane::DataSynchronizeBufferBase::BufferInfo::localBuffer(), Arcane::DataSynchronizeBufferBase::BufferInfo::localIds(), Arcane::DataSynchronizeBufferBase::m_ghost_buffer_info, Arcane::DataSynchronizeBufferBase::m_share_buffer_info, et Arccore::ConstArrayView< T >::size().

◆ prepareSynchronize()

void Arcane::MultiDataSynchronizeBuffer::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 275 du fichier DataSynchronizeBuffer.cc.

Références Arcane::DataSynchronizeBufferBase::_compute().

◆ setDataView()

void Arcane::MultiDataSynchronizeBuffer::setDataView ( Int32  index,
MutableMemoryView  v 
)
inline

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

◆ setNbData()

void Arcane::MultiDataSynchronizeBuffer::setNbData ( Int32  nb_data)
inline

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

Documentation des données membres

◆ m_data_views

SmallArray<MutableMemoryView> Arcane::MultiDataSynchronizeBuffer::m_data_views
private

Vue sur les données de la variable.

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


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