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 |
Span< Float128 > | getFloat128Buffer () override |
Span< Int128 > | getInt128Buffer () 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, Int64 nb_float128, Int64 nb_int128) 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 |
Vue les octets. | |
Span< Int8 > | m_int8_view |
Vue les Int8. | |
Span< Float16 > | m_float16_view |
Vue les Float16. | |
Span< BFloat16 > | m_bfloat16_view |
Vue les BFloat16. | |
Span< Float32 > | m_float32_view |
Vue les Float32. | |
Span< Float128 > | m_float128_view |
Vue les Float128. | |
Span< Int128 > | m_int128_view |
Vue les Int128. | |
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 48 du fichier BasicSerializer.cc.
|
inlineprotected |
Définition à la ligne 493 du fichier BasicSerializer.cc.
|
inlineprotected |
Définition à la ligne 460 du fichier BasicSerializer.cc.
|
inlineprotected |
Définition à la ligne 445 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 429 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 436 du fichier BasicSerializer.cc.
|
inlineprotected |
Définition à la ligne 487 du fichier BasicSerializer.cc.
|
inlineprotected |
Définition à la ligne 469 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 149 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 162 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 275 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 368 du fichier BasicSerializer.cc.
Définition à la ligne 144 du fichier BasicSerializer.cc.
Définition à la ligne 141 du fichier BasicSerializer.cc.
Définition à la ligne 146 du fichier BasicSerializer.cc.
Définition à la ligne 143 du fichier BasicSerializer.cc.
Définition à la ligne 145 du fichier BasicSerializer.cc.
Définition à la ligne 147 du fichier BasicSerializer.cc.
Définition à la ligne 138 du fichier BasicSerializer.cc.
Définition à la ligne 139 du fichier BasicSerializer.cc.
Définition à la ligne 140 du fichier BasicSerializer.cc.
Définition à la ligne 142 du fichier BasicSerializer.cc.
|
inlineprotected |
Définition à la ligne 406 du fichier BasicSerializer.cc.
Définition à la ligne 137 du fichier BasicSerializer.cc.
Définition à la ligne 297 du fichier BasicSerializer.cc.
Définition à la ligne 292 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 307 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 383 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 313 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 318 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 302 du fichier BasicSerializer.cc.
|
inlineoverride |
Définition à la ligne 378 du fichier BasicSerializer.cc.
Vue les BFloat16.
Définition à la ligne 120 du fichier BasicSerializer.cc.
UniqueArray<Byte> Arccore::BasicSerializerNewImpl::m_buffer |
Tableau contenant les données sérialisées.
Définition à la ligne 108 du fichier BasicSerializer.cc.
Vue alignée sur ALIGN_SIZE du m_buffer.
Définition à la ligne 111 du fichier BasicSerializer.cc.
Référencé par _fillPadding().
Vue les octets.
Définition à la ligne 117 du fichier BasicSerializer.cc.
Vue les Float128.
Définition à la ligne 122 du fichier BasicSerializer.cc.
Vue les Float16.
Définition à la ligne 119 du fichier BasicSerializer.cc.
Vue les Float32.
Définition à la ligne 121 du fichier BasicSerializer.cc.
Vue les Int128.
Définition à la ligne 123 du fichier BasicSerializer.cc.
Vue sur les entiers 16 bits.
Définition à la ligne 116 du fichier BasicSerializer.cc.
Vue sur les entiers 32 bits.
Définition à la ligne 115 du fichier BasicSerializer.cc.
Vue sur les entiers 64 bits.
Définition à la ligne 114 du fichier BasicSerializer.cc.
Vue les Int8.
Définition à la ligne 118 du fichier BasicSerializer.cc.
Vue sur les reels;.
Définition à la ligne 113 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 133 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 125 du fichier BasicSerializer.cc.