Implémentation d'un buffer de sérialisation contigu en mémoire. Plus de détails...
Classes | |
struct | SizeInfo |
Informations sur la taille allouée avec et sans padding. Plus de détails... | |
Fonctions membres publiques | |
Span< Real > | getRealBuffer () override |
Span< Int16 > | getInt16Buffer () override |
Span< Int32 > | getInt32Buffer () override |
Span< Int64 > | getInt64Buffer () override |
Span< Byte > | getByteBuffer () override |
Span< Int8 > | getInt8Buffer () override |
Span< Float16 > | getFloat16Buffer () override |
Span< BFloat16 > | getBFloat16Buffer () override |
Span< Float32 > | getFloat32Buffer () 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< Byte > | globalBuffer () override |
Span< const Byte > | globalBuffer () 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< Byte > | m_buffer |
Tableau contenant les données sérialisées. | |
Span< Byte > | m_buffer_view |
Vue alignée sur ALIGN_SIZE du m_buffer. | |
Span< Real > | m_real_view |
Vue sur les reels;. | |
Span< Int64 > | m_int64_view |
Vue sur les entiers 64 bits. | |
Span< Int32 > | m_int32_view |
Vue sur les entiers 32 bits. | |
Span< Int16 > | m_int16_view |
Vue sur les entiers 16 bits. | |
Span< Byte > | m_byte_view |
Vur les octets. | |
Span< Int8 > | m_int8_view |
Vur les Int8. | |
Span< Float16 > | m_float16_view |
Vur les Float16. | |
Span< BFloat16 > | m_bfloat16_view |
Vur les BFloat16. | |
Span< Float32 > | m_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) |
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.
|
inlineprotected |
Définition à la ligne 453 du fichier BasicSerializer.cc.
|
inlineprotected |
Définition à la ligne 422 du fichier BasicSerializer.cc.
|
inlineprotected |
Définition à la ligne 409 du fichier BasicSerializer.cc.
|
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().
Définition à la ligne 400 du fichier BasicSerializer.cc.
|
inlineprotected |
Définition à la ligne 447 du fichier BasicSerializer.cc.
|
inlineprotected |
Définition à la ligne 431 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 142 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 152 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 249 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 334 du fichier BasicSerializer.cc.
Définition à la ligne 139 du fichier BasicSerializer.cc.
Définition à la ligne 136 du fichier BasicSerializer.cc.
Définition à la ligne 138 du fichier BasicSerializer.cc.
Définition à la ligne 140 du fichier BasicSerializer.cc.
Définition à la ligne 133 du fichier BasicSerializer.cc.
Définition à la ligne 134 du fichier BasicSerializer.cc.
Définition à la ligne 135 du fichier BasicSerializer.cc.
Définition à la ligne 137 du fichier BasicSerializer.cc.
|
inlineprotected |
Définition à la ligne 370 du fichier BasicSerializer.cc.
Définition à la ligne 132 du fichier BasicSerializer.cc.
Définition à la ligne 269 du fichier BasicSerializer.cc.
Définition à la ligne 264 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 279 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 349 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 285 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 290 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 274 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 344 du fichier BasicSerializer.cc.
Vur les BFloat16.
Définition à la ligne 118 du fichier BasicSerializer.cc.
UniqueArray<Byte> Arccore::BasicSerializerNewImpl::m_buffer |
Tableau contenant les données sérialisées.
Définition à la ligne 106 du fichier BasicSerializer.cc.
Vue alignée sur ALIGN_SIZE du m_buffer.
Définition à la ligne 109 du fichier BasicSerializer.cc.
Référencé par _fillPadding().
Vur les octets.
Définition à la ligne 115 du fichier BasicSerializer.cc.
Vur les Float16.
Définition à la ligne 117 du fichier BasicSerializer.cc.
Vur les Float32.
Définition à la ligne 119 du fichier BasicSerializer.cc.
Vue sur les entiers 16 bits.
Définition à la ligne 114 du fichier BasicSerializer.cc.
Vue sur les entiers 32 bits.
Définition à la ligne 113 du fichier BasicSerializer.cc.
Vue sur les entiers 64 bits.
Définition à la ligne 112 du fichier BasicSerializer.cc.
Vur les Int8.
Définition à la ligne 116 du fichier BasicSerializer.cc.
Vue sur les reels;.
Définition à la ligne 111 du fichier BasicSerializer.cc.
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.
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.