Arcane  v3.14.10.0
Documentation développeur
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)
 

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()
 

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

◆ ALIGN_SIZE

constexpr Integer Arccore::BasicSerializerNewImpl::ALIGN_SIZE = BasicSerializer::paddingSize()
staticconstexprprivate

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

◆ IDX_NB_BFLOAT16

constexpr int Arccore::BasicSerializerNewImpl::IDX_NB_BFLOAT16 = 14
staticconstexprprivate

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

◆ IDX_NB_BYTE

constexpr int Arccore::BasicSerializerNewImpl::IDX_NB_BYTE = 4
staticconstexprprivate

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

◆ IDX_NB_FLOAT128

constexpr int Arccore::BasicSerializerNewImpl::IDX_NB_FLOAT128 = 8
staticconstexprprivate

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

◆ IDX_NB_FLOAT16

constexpr int Arccore::BasicSerializerNewImpl::IDX_NB_FLOAT16 = 5
staticconstexprprivate

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

◆ IDX_NB_FLOAT32

constexpr int Arccore::BasicSerializerNewImpl::IDX_NB_FLOAT32 = 6
staticconstexprprivate

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

◆ IDX_NB_FLOAT64

constexpr int Arccore::BasicSerializerNewImpl::IDX_NB_FLOAT64 = 7
staticconstexprprivate

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

◆ IDX_NB_INT128

constexpr int Arccore::BasicSerializerNewImpl::IDX_NB_INT128 = 12
staticconstexprprivate

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

◆ IDX_NB_INT16

constexpr int Arccore::BasicSerializerNewImpl::IDX_NB_INT16 = 9
staticconstexprprivate

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

◆ IDX_NB_INT32

constexpr int Arccore::BasicSerializerNewImpl::IDX_NB_INT32 = 10
staticconstexprprivate

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

◆ IDX_NB_INT64

constexpr int Arccore::BasicSerializerNewImpl::IDX_NB_INT64 = 11
staticconstexprprivate

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

◆ IDX_NB_INT8

constexpr int Arccore::BasicSerializerNewImpl::IDX_NB_INT8 = 13
staticconstexprprivate

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

◆ IDX_POS_BFLOAT16

constexpr int Arccore::BasicSerializerNewImpl::IDX_POS_BFLOAT16 = 42
staticconstexprprivate

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

◆ IDX_POS_BYTE

constexpr int Arccore::BasicSerializerNewImpl::IDX_POS_BYTE = 32
staticconstexprprivate

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

◆ IDX_POS_FLOAT128

constexpr int Arccore::BasicSerializerNewImpl::IDX_POS_FLOAT128 = 36
staticconstexprprivate

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

◆ IDX_POS_FLOAT16

constexpr int Arccore::BasicSerializerNewImpl::IDX_POS_FLOAT16 = 33
staticconstexprprivate

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

◆ IDX_POS_FLOAT32

constexpr int Arccore::BasicSerializerNewImpl::IDX_POS_FLOAT32 = 34
staticconstexprprivate

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

◆ IDX_POS_FLOAT64

constexpr int Arccore::BasicSerializerNewImpl::IDX_POS_FLOAT64 = 35
staticconstexprprivate

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

◆ IDX_POS_INT128

constexpr int Arccore::BasicSerializerNewImpl::IDX_POS_INT128 = 40
staticconstexprprivate

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

◆ IDX_POS_INT16

constexpr int Arccore::BasicSerializerNewImpl::IDX_POS_INT16 = 37
staticconstexprprivate

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

◆ IDX_POS_INT32

constexpr int Arccore::BasicSerializerNewImpl::IDX_POS_INT32 = 38
staticconstexprprivate

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

◆ IDX_POS_INT64

constexpr int Arccore::BasicSerializerNewImpl::IDX_POS_INT64 = 39
staticconstexprprivate

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

◆ IDX_POS_INT8

constexpr int Arccore::BasicSerializerNewImpl::IDX_POS_INT8 = 41
staticconstexprprivate

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

◆ IDX_RESERVED1

constexpr int Arccore::BasicSerializerNewImpl::IDX_RESERVED1 = 2
staticconstexprprivate

Champ réservé pour des informations supplémentaires (par exemple compression)

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

◆ IDX_TAG

constexpr int Arccore::BasicSerializerNewImpl::IDX_TAG = 0
staticconstexprprivate

Index du tag pour identifier qu'il s'agit d'une sérialisation.

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

◆ IDX_TOTAL_SIZE

constexpr int Arccore::BasicSerializerNewImpl::IDX_TOTAL_SIZE = 3
staticconstexprprivate

Position du champs indiquant la taille totale de la sérialisation.

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

◆ IDX_VERSION

constexpr int Arccore::BasicSerializerNewImpl::IDX_VERSION = 1
staticconstexprprivate

Version de la sérialisation.

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

◆ 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.

◆ NB_SIZE_ELEM

constexpr Integer Arccore::BasicSerializerNewImpl::NB_SIZE_ELEM = 128
staticconstexprprivate

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

◆ SERIALIZE_TAG

constexpr Int64 Arccore::BasicSerializerNewImpl::SERIALIZE_TAG = 0x7a9b3cd0
staticconstexprprivate

Tag identifiant la sérialisation.

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


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