Classe de base de l'implémentation de IDataSynchronizeBuffer. Plus de détails...
#include <arcane/impl/internal/DataSynchronizeBuffer.h>
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 | |
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 |
Classe de base de l'implémentation de IDataSynchronizeBuffer.
Définition à la ligne 41 du fichier DataSynchronizeBuffer.h.
Arcane::DataSynchronizeBufferBase::DataSynchronizeBufferBase | ( | DataSynchronizeInfo * | sync_info, |
Ref< IBufferCopier > | copier | ||
) |
Définition à la ligne 101 du fichier DataSynchronizeBuffer.cc.
|
protected |
Calcul et alloue les tampons nécessaires aux envois et réceptions pour les synchronisations des variables 1D.
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().
|
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().
|
finalvirtual |
Attend que les copies (copySendAsync() et copyReceiveAsync()) soient terminées.
Implémente Arcane::IDataSynchronizeBuffer.
Définition à la ligne 120 du fichier DataSynchronizeBuffer.cc.
|
inlinefinalvirtual |
Buffer de réception.
Implémente Arcane::IDataSynchronizeBuffer.
Définition à la ligne 89 du fichier DataSynchronizeBuffer.h.
|
inlinefinalvirtual |
Buffer d'envoi.
Implémente Arcane::IDataSynchronizeBuffer.
Définition à la ligne 90 du fichier DataSynchronizeBuffer.h.
|
inlinefinalvirtual |
Indique si les buffers sont globaux.
Implémente Arcane::IDataSynchronizeBuffer.
Définition à la ligne 81 du fichier DataSynchronizeBuffer.h.
|
inline |
Indique si on compare les valeurs avant/après la synchronisation.
Définition à la ligne 104 du fichier DataSynchronizeBuffer.h.
|
inlinefinalvirtual |
Nombre de rangs.
Implémente Arcane::IDataSynchronizeBuffer.
Définition à la ligne 79 du fichier DataSynchronizeBuffer.h.
Référencé par Arcane::SingleDataSynchronizeBuffer::prepareSynchronize().
|
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.
|
inlinefinalvirtual |
Buffer de réception pour le index-ème rang.
Implémente Arcane::IDataSynchronizeBuffer.
Définition à la ligne 83 du fichier DataSynchronizeBuffer.h.
|
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.
|
inlinefinalvirtual |
Buffer d'envoi pour le index-ème rang.
Implémente Arcane::IDataSynchronizeBuffer.
Définition à la ligne 84 du fichier DataSynchronizeBuffer.h.
|
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.
|
inline |
Définition à la ligne 106 du fichier DataSynchronizeBuffer.h.
|
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().
|
inlinefinalvirtual |
Taille totale à recevoir en octet.
Implémente Arcane::IDataSynchronizeBuffer.
Définition à la ligne 92 du fichier DataSynchronizeBuffer.h.
|
inlinefinalvirtual |
Taille totale à envoyer en octet.
Implémente Arcane::IDataSynchronizeBuffer.
Définition à la ligne 93 du fichier DataSynchronizeBuffer.h.
|
protected |
Définition à la ligne 148 du fichier DataSynchronizeBuffer.h.
|
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().
|
protected |
Buffer pour toutes les données des entités fantômes qui serviront en réception.
Définition à la ligne 134 du fichier DataSynchronizeBuffer.h.
Référencé par _allocateBuffers(), _compute(), Arcane::SingleDataSynchronizeBuffer::copyReceiveAsync(), Arcane::MultiDataSynchronizeBuffer::copyReceiveAsync(), Arcane::MultiDataSynchronizeBuffer::copySendAsync(), et Arcane::SingleDataSynchronizeBuffer::finalizeSynchronize().
Définition à la ligne 143 du fichier DataSynchronizeBuffer.h.
|
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().
|
protected |
Définition à la ligne 142 du fichier DataSynchronizeBuffer.h.
|
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().
|
protected |
Définition à la ligne 132 du fichier DataSynchronizeBuffer.h.