Implémentation de IDataSynchronizeBuffer pour une donnée. Plus de détails...
#include <arcane/impl/internal/DataSynchronizeBuffer.h>
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. | |
![]() | |
TraceAccessor (ITraceMng *m) | |
Construit un accesseur via le gestionnaire de trace m. | |
TraceAccessor (const TraceAccessor &rhs) | |
Constructeur par recopie. | |
TraceAccessor & | operator= (const TraceAccessor &rhs) |
Opérateur de recopie. | |
virtual | ~TraceAccessor () |
Libère les ressources. | |
ITraceMng * | traceMng () 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 |
![]() | |
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 | 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 | |
![]() | |
void | _setLocalVerboseLevel (Int32 v) |
Int32 | _localVerboseLevel () const |
![]() | |
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. | |
![]() | |
DataSynchronizeInfo * | m_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< MemoryBuffer > | m_memory |
Buffer contenant les données concaténées en envoi et réception. | |
Ref< IBufferCopier > | m_buffer_copier |
Implémentation de IDataSynchronizeBuffer pour une donnée.
Définition à la ligne 190 du fichier DataSynchronizeBuffer.h.
|
inline |
Définition à la ligne 196 du fichier DataSynchronizeBuffer.h.
|
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.
|
finalvirtual |
Recopie dans le buffer d'envoi les données du index-ème rang.
Cet appel est équivalent à :
Implémente Arcane::IDataSynchronizeBuffer.
Définition à la ligne 310 du fichier DataSynchronizeBuffer.cc.
Références dataView(), et Arcane::DataSynchronizeBufferBase::m_share_buffer_info.
|
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().
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).
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().
|
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().
|
inline |
Définition à la ligne 208 du fichier DataSynchronizeBuffer.h.
|
private |
Vue sur les données de la variable.
Définition à la ligne 225 du fichier DataSynchronizeBuffer.h.
Référencé par dataView().
|
private |
Tableau contenant les tailles des types de donnée.
Définition à la ligne 227 du fichier DataSynchronizeBuffer.h.
Référencé par prepareSynchronize().