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) |
Attributs privés statiques | |
static constexpr int | IDX_TAG = 0 |
Index du tag pour identifier qu'il s'agit d'une sérialisation. | |
static constexpr Int64 | SERIALIZE_TAG = 0x7a9b3cd0 |
Tag identifiant la sérialisation. | |
static constexpr int | IDX_VERSION = 1 |
Version de la sérialisation. | |
static constexpr int | IDX_RESERVED1 = 2 |
Champ réservé pour des informations supplémentaires (par exemple compression) | |
static constexpr int | IDX_TOTAL_SIZE = 3 |
Position du champs indiquant la taille totale de la sérialisation. | |
static constexpr int | IDX_NB_BYTE = 4 |
static constexpr int | IDX_NB_FLOAT16 = 5 |
static constexpr int | IDX_NB_FLOAT32 = 6 |
static constexpr int | IDX_NB_FLOAT64 = 7 |
static constexpr int | IDX_NB_FLOAT128 = 8 |
static constexpr int | IDX_NB_INT16 = 9 |
static constexpr int | IDX_NB_INT32 = 10 |
static constexpr int | IDX_NB_INT64 = 11 |
static constexpr int | IDX_NB_INT128 = 12 |
static constexpr int | IDX_NB_INT8 = 13 |
static constexpr int | IDX_NB_BFLOAT16 = 14 |
static constexpr int | IDX_POS_BYTE = 32 |
static constexpr int | IDX_POS_FLOAT16 = 33 |
static constexpr int | IDX_POS_FLOAT32 = 34 |
static constexpr int | IDX_POS_FLOAT64 = 35 |
static constexpr int | IDX_POS_FLOAT128 = 36 |
static constexpr int | IDX_POS_INT16 = 37 |
static constexpr int | IDX_POS_INT32 = 38 |
static constexpr int | IDX_POS_INT64 = 39 |
static constexpr int | IDX_POS_INT128 = 40 |
static constexpr int | IDX_POS_INT8 = 41 |
static constexpr int | IDX_POS_BFLOAT16 = 42 |
static constexpr Integer | NB_SIZE_ELEM = 128 |
static constexpr Integer | ALIGN_SIZE = BasicSerializer::paddingSize() |
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.
|
staticconstexprprivate |
Définition à la ligne 92 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 73 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 63 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 67 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 64 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 65 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 66 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 71 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 68 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 69 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 70 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 72 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 86 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 76 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 80 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 77 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 78 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 79 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 84 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 81 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 82 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 83 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Définition à la ligne 85 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Champ réservé pour des informations supplémentaires (par exemple compression)
Définition à la ligne 58 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Index du tag pour identifier qu'il s'agit d'une sérialisation.
Définition à la ligne 52 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Position du champs indiquant la taille totale de la sérialisation.
Définition à la ligne 61 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Version de la sérialisation.
Définition à la ligne 56 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.
|
staticconstexprprivate |
Définition à la ligne 88 du fichier BasicSerializer.cc.
|
staticconstexprprivate |
Tag identifiant la sérialisation.
Définition à la ligne 54 du fichier BasicSerializer.cc.