Buffer générique pour la synchronisation de données. Plus de détails...
#include <arcane/impl/IDataSynchronizeBuffer.h>
Fonctions membres publiques | |
virtual Int32 | nbRank () const =0 |
Nombre de rangs. | |
virtual Int32 | targetRank (Int32 index) const =0 |
Rang cible du index-ème rang. | |
virtual bool | hasGlobalBuffer () const =0 |
Indique si les buffers sont globaux. | |
virtual MutableMemoryView | globalSendBuffer ()=0 |
Buffer d'envoi. | |
virtual MutableMemoryView | globalReceiveBuffer ()=0 |
Buffer de réception. | |
virtual MutableMemoryView | sendBuffer (Int32 index)=0 |
Buffer d'envoi pour le index-ème rang. | |
virtual MutableMemoryView | receiveBuffer (Int32 index)=0 |
Buffer de réception pour le index-ème rang. | |
virtual Int64 | sendDisplacement (Int32 index) const =0 |
Déplacement (en octets) depuis le début de sendBuffer() pour le index-ème rang. | |
virtual Int64 | receiveDisplacement (Int32 index) const =0 |
Déplacement (en octets) depuis le début de receiveBuffer() pour le index-ème rang. | |
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. | |
virtual Int64 | totalSendSize () const =0 |
Taille totale à envoyer en octet. | |
virtual Int64 | totalReceiveSize () const =0 |
Taille totale à recevoir en octet. | |
virtual void | barrier ()=0 |
Attend que les copies (copySendAsync() et copyReceiveAsync()) soient terminées. | |
Buffer générique pour la synchronisation de données.
Cette instance contient des buffers d'envoi et de réception et peut être utilisée quel que soit le type de donnée de la synchronisation.
Chaque buffer est composé de nbRank() parties et chaque partie est associée à un destinataire (sendBuffer() ou receiveBuffer()).
Avant d'utiliser les buffers, il faut recopier les valeurs de la donnée. La méthode copySendAsync() permet de recopier les valeurs de la donnée dans le buffer d'envoi et copyReceiveAsync() permet de recopier le buffer de réception dans la donnée.
Si hasGlobalBuffer() est vrai alors les buffers de chaque partie sont issus d'un buffer global et il est possible de le récupérer via globalSendBuffer() pour l'envoi et globalReceiveBuffer() pour la réception. Il est aussi possible dans ce de récupérer le déplacement de chaque sous-partie via les méthodes sendDisplacement() ou receiveDisplacement().
Définition à la ligne 52 du fichier IDataSynchronizeBuffer.h.
Attend que les copies (copySendAsync() et copyReceiveAsync()) soient terminées.
Implémenté dans Arcane::DataSynchronizeBufferBase.
Référencé par copyAllReceive(), et copyAllSend().
|
virtual |
Recopie toutes les données depuis le buffer de réception.
Cet appel est équivalent à :
Définition à la ligne 45 du fichier DataSynchronizeBuffer.cc.
Références barrier(), copyReceiveAsync(), et nbRank().
|
virtual |
Recopie dans le buffer d'envoi toute les données.
Définition à la ligne 33 du fichier DataSynchronizeBuffer.cc.
Références barrier(), copySendAsync(), et nbRank().
Recopie dans les données depuis le buffer de réception du index-ème rang.
Implémenté dans Arcane::SingleDataSynchronizeBuffer, et Arcane::MultiDataSynchronizeBuffer.
Référencé par copyAllReceive().
Recopie dans le buffer d'envoi les données du index-ème rang.
Cet appel est équivalent à :
Implémenté dans Arcane::SingleDataSynchronizeBuffer, et Arcane::MultiDataSynchronizeBuffer.
Référencé par copyAllSend().
|
pure virtual |
Buffer de réception.
Implémenté dans Arcane::DataSynchronizeBufferBase.
|
pure virtual |
Buffer d'envoi.
Implémenté dans Arcane::DataSynchronizeBufferBase.
Indique si les buffers sont globaux.
Implémenté dans Arcane::DataSynchronizeBufferBase.
|
pure virtual |
Nombre de rangs.
Implémenté dans Arcane::DataSynchronizeBufferBase.
Référencé par copyAllReceive(), et copyAllSend().
|
pure virtual |
Buffer de réception pour le index-ème rang.
Implémenté dans Arcane::DataSynchronizeBufferBase.
|
pure virtual |
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émenté dans Arcane::DataSynchronizeBufferBase.
|
pure virtual |
Buffer d'envoi pour le index-ème rang.
Implémenté dans Arcane::DataSynchronizeBufferBase.
|
pure virtual |
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émenté dans Arcane::DataSynchronizeBufferBase.
|
pure virtual |
Rang cible du index-ème rang.
Implémenté dans Arcane::DataSynchronizeBufferBase.
|
pure virtual |
Taille totale à recevoir en octet.
Implémenté dans Arcane::DataSynchronizeBufferBase.
|
pure virtual |
Taille totale à envoyer en octet.
Implémenté dans Arcane::DataSynchronizeBufferBase.