Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arccore::BasicSerializerNewImpl

Implémentation d'un buffer de sérialisation contigu en mémoire. Plus de détails...

+ Graphe d'héritage de Arccore::BasicSerializerNewImpl:
+ Graphe de collaboration de Arccore::BasicSerializerNewImpl:

Classes

struct  SizeInfo
 Informations sur la taille allouée avec et sans padding. Plus de détails...
 

Fonctions membres publiques

Span< RealgetRealBuffer () override
 
Span< Int16getInt16Buffer () override
 
Span< Int32getInt32Buffer () override
 
Span< Int64getInt64Buffer () override
 
Span< BytegetByteBuffer () override
 
Span< Int8getInt8Buffer () override
 
Span< Float16getFloat16Buffer () override
 
Span< BFloat16getBFloat16Buffer () override
 
Span< Float32getFloat32Buffer () override
 
void allocateBuffer (Int64 nb_real, Int64 nb_int16, Int64 nb_int32, Int64 nb_int64, Int64 nb_byte) override
 
void allocateBuffer (Int64 nb_real, Int64 nb_int16, Int64 nb_int32, Int64 nb_int64, Int64 nb_byte, Int64 nb_int8, Int64 nb_float16, Int64 nb_bfloat16, Int64 nb_float32) override
 
void copy (Impl *rhs) override
 
Span< ByteglobalBuffer () override
 
Span< const ByteglobalBuffer () const override
 
Int64ConstArrayView sizesBuffer () const override
 
void preallocate (Int64 size) override
 
void releaseBuffer () override
 
void setFromSizes () override
 
ByteConstArrayView copyAndGetSizesBuffer () override
 
Int64 totalSize () const override
 
void printSizes (std::ostream &o) const override
 

Attributs publics

UniqueArray< Bytem_buffer
 Tableau contenant les données sérialisées.
 
Span< Bytem_buffer_view
 Vue alignée sur ALIGN_SIZE du m_buffer.
 
Span< Realm_real_view
 Vue sur les reels;.
 
Span< Int64m_int64_view
 Vue sur les entiers 64 bits.
 
Span< Int32m_int32_view
 Vue sur les entiers 32 bits.
 
Span< Int16m_int16_view
 Vue sur les entiers 16 bits.
 
Span< Bytem_byte_view
 Vur les octets.
 
Span< Int8m_int8_view
 Vur les Int8.
 
Span< Float16m_float16_view
 Vur les Float16.
 
Span< BFloat16m_bfloat16_view
 Vur les BFloat16.
 
Span< Float32m_float32_view
 Vur les Float32.
 
Int64ArrayView m_sizes_view
 Vue pour les tailles (doit être un multiple de ALIGN_SIZE);.
 
Int64 m_size_copy_buffer [NB_SIZE_ELEM]
 Copie des tailles utilisée pour l'envoie en plusieurs fois.
 

Fonctions membres protégées

SizeInfo getPaddingSize (Int64 nb_elem, Int64 elem_size)
 
void _fillPadding (Int64 position, SizeInfo size_info)
 Remplit avec une valeur fixe les zones correspondantes au padding. Cela permet d'éviter d'avoir des valeurs non initialisées.
 
void _fillPadding (Span< Byte > buf)
 
void _checkAlignment ()
 
void _checkAddr (void *ptr)
 
void _printAlignment ()
 
void _printAddr (void *ptr, const String &name)
 
void _allocBuffer (Int64 size)
 

Description détaillée

Implémentation d'un buffer de sérialisation contigu en mémoire.

Cette implémentation permet de sérialiser les données dans une zone contigue en mémoire et ainsi de l'envoyer en une seule fois via MPI par exemple. Le buffer est composé d'un première partie contenant NB_SIZE_ELEM objets de type Integer. Cette partie contient le nombre d'élément sérialisé de chaque type (Real, Int64, Int32, Int16, Byte). La deuxième partie contient les données sérialisées proprement dites.

Lorsque cette classe est utilisée dans le cadre d'un appel MPI, on utilise le tableau m_size_copy_buffer pour envoyer les tailles. lors du premier message lorsque le message complet est envoyé en plusieurs fois. La norme MPI indique effectivement qu'un buffer utilisé lors d'un appel MPI ne doit plus être utilisé tant que cet appel n'est pas terminé.

Définition à la ligne 47 du fichier BasicSerializer.cc.

Documentation des fonctions membres

◆ _allocBuffer()

void Arccore::BasicSerializerNewImpl::_allocBuffer ( Int64  size)
inlineprotected

Définition à la ligne 453 du fichier BasicSerializer.cc.

◆ _checkAddr()

void Arccore::BasicSerializerNewImpl::_checkAddr ( void *  ptr)
inlineprotected

Définition à la ligne 422 du fichier BasicSerializer.cc.

◆ _checkAlignment()

void Arccore::BasicSerializerNewImpl::_checkAlignment ( )
inlineprotected

Définition à la ligne 409 du fichier BasicSerializer.cc.

◆ _fillPadding() [1/2]

void Arccore::BasicSerializerNewImpl::_fillPadding ( Int64  position,
SizeInfo  size_info 
)
inlineprotected

Remplit avec une valeur fixe les zones correspondantes au padding. Cela permet d'éviter d'avoir des valeurs non initialisées.

Il faut avoir appeler _allocBuffer() avant

Définition à la ligne 393 du fichier BasicSerializer.cc.

Références _fillPadding(), m_buffer_view, et Arccore::Span< T, Extent, MinValue >::subspan().

Référencé par _fillPadding().

◆ _fillPadding() [2/2]

void Arccore::BasicSerializerNewImpl::_fillPadding ( Span< Byte buf)
inlineprotected

Définition à la ligne 400 du fichier BasicSerializer.cc.

◆ _printAddr()

void Arccore::BasicSerializerNewImpl::_printAddr ( void *  ptr,
const String name 
)
inlineprotected

Définition à la ligne 447 du fichier BasicSerializer.cc.

◆ _printAlignment()

void Arccore::BasicSerializerNewImpl::_printAlignment ( )
inlineprotected

Définition à la ligne 431 du fichier BasicSerializer.cc.

◆ allocateBuffer() [1/2]

void Arccore::BasicSerializerNewImpl::allocateBuffer ( Int64  nb_real,
Int64  nb_int16,
Int64  nb_int32,
Int64  nb_int64,
Int64  nb_byte 
)
inlineoverride

Définition à la ligne 142 du fichier BasicSerializer.cc.

◆ allocateBuffer() [2/2]

void Arccore::BasicSerializerNewImpl::allocateBuffer ( Int64  nb_real,
Int64  nb_int16,
Int64  nb_int32,
Int64  nb_int64,
Int64  nb_byte,
Int64  nb_int8,
Int64  nb_float16,
Int64  nb_bfloat16,
Int64  nb_float32 
)
inlineoverride

Définition à la ligne 152 du fichier BasicSerializer.cc.

◆ copy()

void Arccore::BasicSerializerNewImpl::copy ( Impl *  rhs)
inlineoverride

Définition à la ligne 249 du fichier BasicSerializer.cc.

◆ copyAndGetSizesBuffer()

ByteConstArrayView Arccore::BasicSerializerNewImpl::copyAndGetSizesBuffer ( )
inlineoverride

Définition à la ligne 334 du fichier BasicSerializer.cc.

◆ getBFloat16Buffer()

Span< BFloat16 > Arccore::BasicSerializerNewImpl::getBFloat16Buffer ( )
inlineoverride

Définition à la ligne 139 du fichier BasicSerializer.cc.

◆ getByteBuffer()

Span< Byte > Arccore::BasicSerializerNewImpl::getByteBuffer ( )
inlineoverride

Définition à la ligne 136 du fichier BasicSerializer.cc.

◆ getFloat16Buffer()

Span< Float16 > Arccore::BasicSerializerNewImpl::getFloat16Buffer ( )
inlineoverride

Définition à la ligne 138 du fichier BasicSerializer.cc.

◆ getFloat32Buffer()

Span< Float32 > Arccore::BasicSerializerNewImpl::getFloat32Buffer ( )
inlineoverride

Définition à la ligne 140 du fichier BasicSerializer.cc.

◆ getInt16Buffer()

Span< Int16 > Arccore::BasicSerializerNewImpl::getInt16Buffer ( )
inlineoverride

Définition à la ligne 133 du fichier BasicSerializer.cc.

◆ getInt32Buffer()

Span< Int32 > Arccore::BasicSerializerNewImpl::getInt32Buffer ( )
inlineoverride

Définition à la ligne 134 du fichier BasicSerializer.cc.

◆ getInt64Buffer()

Span< Int64 > Arccore::BasicSerializerNewImpl::getInt64Buffer ( )
inlineoverride

Définition à la ligne 135 du fichier BasicSerializer.cc.

◆ getInt8Buffer()

Span< Int8 > Arccore::BasicSerializerNewImpl::getInt8Buffer ( )
inlineoverride

Définition à la ligne 137 du fichier BasicSerializer.cc.

◆ getPaddingSize()

SizeInfo Arccore::BasicSerializerNewImpl::getPaddingSize ( Int64  nb_elem,
Int64  elem_size 
)
inlineprotected

Définition à la ligne 370 du fichier BasicSerializer.cc.

◆ getRealBuffer()

Span< Real > Arccore::BasicSerializerNewImpl::getRealBuffer ( )
inlineoverride

Définition à la ligne 132 du fichier BasicSerializer.cc.

◆ globalBuffer() [1/2]

Span< const Byte > Arccore::BasicSerializerNewImpl::globalBuffer ( ) const
inlineoverride

Définition à la ligne 269 du fichier BasicSerializer.cc.

◆ globalBuffer() [2/2]

Span< Byte > Arccore::BasicSerializerNewImpl::globalBuffer ( )
inlineoverride

Définition à la ligne 264 du fichier BasicSerializer.cc.

◆ preallocate()

void Arccore::BasicSerializerNewImpl::preallocate ( Int64  size)
inlineoverride

Définition à la ligne 279 du fichier BasicSerializer.cc.

◆ printSizes()

void Arccore::BasicSerializerNewImpl::printSizes ( std::ostream &  o) const
inlineoverride

Définition à la ligne 349 du fichier BasicSerializer.cc.

◆ releaseBuffer()

void Arccore::BasicSerializerNewImpl::releaseBuffer ( )
inlineoverride

Définition à la ligne 285 du fichier BasicSerializer.cc.

◆ setFromSizes()

void Arccore::BasicSerializerNewImpl::setFromSizes ( )
inlineoverride

Définition à la ligne 290 du fichier BasicSerializer.cc.

◆ sizesBuffer()

Int64ConstArrayView Arccore::BasicSerializerNewImpl::sizesBuffer ( ) const
inlineoverride

Définition à la ligne 274 du fichier BasicSerializer.cc.

◆ totalSize()

Int64 Arccore::BasicSerializerNewImpl::totalSize ( ) const
inlineoverride

Définition à la ligne 344 du fichier BasicSerializer.cc.

Documentation des données membres

◆ m_bfloat16_view

Span<BFloat16> Arccore::BasicSerializerNewImpl::m_bfloat16_view

Vur les BFloat16.

Définition à la ligne 118 du fichier BasicSerializer.cc.

◆ m_buffer

UniqueArray<Byte> Arccore::BasicSerializerNewImpl::m_buffer

Tableau contenant les données sérialisées.

Définition à la ligne 106 du fichier BasicSerializer.cc.

◆ m_buffer_view

Span<Byte> Arccore::BasicSerializerNewImpl::m_buffer_view

Vue alignée sur ALIGN_SIZE du m_buffer.

Définition à la ligne 109 du fichier BasicSerializer.cc.

Référencé par _fillPadding().

◆ m_byte_view

Span<Byte> Arccore::BasicSerializerNewImpl::m_byte_view

Vur les octets.

Définition à la ligne 115 du fichier BasicSerializer.cc.

◆ m_float16_view

Span<Float16> Arccore::BasicSerializerNewImpl::m_float16_view

Vur les Float16.

Définition à la ligne 117 du fichier BasicSerializer.cc.

◆ m_float32_view

Span<Float32> Arccore::BasicSerializerNewImpl::m_float32_view

Vur les Float32.

Définition à la ligne 119 du fichier BasicSerializer.cc.

◆ m_int16_view

Span<Int16> Arccore::BasicSerializerNewImpl::m_int16_view

Vue sur les entiers 16 bits.

Définition à la ligne 114 du fichier BasicSerializer.cc.

◆ m_int32_view

Span<Int32> Arccore::BasicSerializerNewImpl::m_int32_view

Vue sur les entiers 32 bits.

Définition à la ligne 113 du fichier BasicSerializer.cc.

◆ m_int64_view

Span<Int64> Arccore::BasicSerializerNewImpl::m_int64_view

Vue sur les entiers 64 bits.

Définition à la ligne 112 du fichier BasicSerializer.cc.

◆ m_int8_view

Span<Int8> Arccore::BasicSerializerNewImpl::m_int8_view

Vur les Int8.

Définition à la ligne 116 du fichier BasicSerializer.cc.

◆ m_real_view

Span<Real> Arccore::BasicSerializerNewImpl::m_real_view

Vue sur les reels;.

Définition à la ligne 111 du fichier BasicSerializer.cc.

◆ m_size_copy_buffer

Int64 Arccore::BasicSerializerNewImpl::m_size_copy_buffer[NB_SIZE_ELEM]

Copie des tailles utilisée pour l'envoie en plusieurs fois.

Seuls les premiers éléments (actuellement 40) sont utilisés mais la taille de cette structure doit être un multiple de ALIGN_SIZE.

Définition à la ligne 129 du fichier BasicSerializer.cc.

◆ m_sizes_view

Int64ArrayView Arccore::BasicSerializerNewImpl::m_sizes_view

Vue pour les tailles (doit être un multiple de ALIGN_SIZE);.

Définition à la ligne 121 du fichier BasicSerializer.cc.


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