Arcane  v3.15.3.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::MessagePassing::Mpi::SerializeByteConverter< SpanType >

Wrappeur pour envoyer un tableau d'octets d'un sérialiseur. Plus de détails...

+ Graphe de collaboration de Arcane::MessagePassing::Mpi::SerializeByteConverter< SpanType >:

Fonctions membres publiques

 SerializeByteConverter (Span< SpanType > buffer, MPI_Datatype byte_serializer_datatype)
 
SpanType * data ()
 
Int64 size () const
 
Int64 messageSize () const
 
Int64 elementSize () const
 
MPI_Datatype datatype () const
 

Attributs privés

Span< SpanType > m_buffer
 
MPI_Datatype m_datatype
 
Int64 m_final_size
 

Description détaillée

template<typename SpanType>
class Arcane::MessagePassing::Mpi::SerializeByteConverter< SpanType >

Wrappeur pour envoyer un tableau d'octets d'un sérialiseur.

SpanType doit être un 'Byte' ou un 'const Byte'.

Comme MPI utilise un 'int' pour le nombre d'éléments d'un message, on ne peut pas dépasser 2^31 octets pas message. Par contre, les versions 3.0+ de MPI supportent des messages dont la longueur dépasse 2^31. On utilise donc un type dérivé MPI contenant N octets (avec N donné par SerializeBuffer::paddingSize()) et on indique à MPI que c'est ce type qu'on envoie. Le nombre d'éléments est donc divisé par N ce qui permet de tenir sur 'int' si la taille du message est inférieure à 2^31 * N octets (en février 2019, N=128 soit des messages de 256Go maximum).

Note
Pour que cela fonctionne, le tableau buffer doit avoir une mémoire allouée arrondie au multiple de N supérieur au nombre d'éléments mais normalement cela est garanti par le SerializeBuffer.

Définition à la ligne 58 du fichier MpiSerializeDispatcher.cc.

Documentation des constructeurs et destructeur

◆ SerializeByteConverter()

template<typename SpanType >
Arcane::MessagePassing::Mpi::SerializeByteConverter< SpanType >::SerializeByteConverter ( Span< SpanType >  buffer,
MPI_Datatype  byte_serializer_datatype 
)
inline

Définition à la ligne 61 du fichier MpiSerializeDispatcher.cc.

Documentation des fonctions membres

◆ data()

template<typename SpanType >
SpanType * Arcane::MessagePassing::Mpi::SerializeByteConverter< SpanType >::data ( )
inline

Définition à la ligne 70 du fichier MpiSerializeDispatcher.cc.

◆ datatype()

template<typename SpanType >
MPI_Datatype Arcane::MessagePassing::Mpi::SerializeByteConverter< SpanType >::datatype ( ) const
inline

Définition à la ligne 74 du fichier MpiSerializeDispatcher.cc.

◆ elementSize()

template<typename SpanType >
Int64 Arcane::MessagePassing::Mpi::SerializeByteConverter< SpanType >::elementSize ( ) const
inline

Définition à la ligne 73 du fichier MpiSerializeDispatcher.cc.

◆ messageSize()

template<typename SpanType >
Int64 Arcane::MessagePassing::Mpi::SerializeByteConverter< SpanType >::messageSize ( ) const
inline

Définition à la ligne 72 du fichier MpiSerializeDispatcher.cc.

◆ size()

template<typename SpanType >
Int64 Arcane::MessagePassing::Mpi::SerializeByteConverter< SpanType >::size ( ) const
inline

Définition à la ligne 71 du fichier MpiSerializeDispatcher.cc.

Documentation des données membres

◆ m_buffer

template<typename SpanType >
Span<SpanType> Arcane::MessagePassing::Mpi::SerializeByteConverter< SpanType >::m_buffer
private

Définition à la ligne 76 du fichier MpiSerializeDispatcher.cc.

◆ m_datatype

template<typename SpanType >
MPI_Datatype Arcane::MessagePassing::Mpi::SerializeByteConverter< SpanType >::m_datatype
private

Définition à la ligne 77 du fichier MpiSerializeDispatcher.cc.

◆ m_final_size

template<typename SpanType >
Int64 Arcane::MessagePassing::Mpi::SerializeByteConverter< SpanType >::m_final_size
private

Définition à la ligne 78 du fichier MpiSerializeDispatcher.cc.


La documentation de cette classe a été générée à partir du fichier suivant :