Arcane  v3.16.8.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::SequentialDynamicMachineMemoryWindowBaseInternal
+ Graphe d'héritage de Arcane::SequentialDynamicMachineMemoryWindowBaseInternal:
+ Graphe de collaboration de Arcane::SequentialDynamicMachineMemoryWindowBaseInternal:

Fonctions membres publiques

 SequentialDynamicMachineMemoryWindowBaseInternal (Int64 sizeof_segment, Int32 sizeof_type)
 
Int32 sizeofOneElem () const override
 Méthode permettant d'obtenir la taille d'un élement de la fenêtre.
 
ConstArrayView< Int32machineRanks () const override
 Méthode permettant d'obtenir les rangs qui possèdent un segment dans la fenêtre.
 
void barrier () const override
 Méthode permettant d'attendre que tous les processus/threads du noeud appellent cette méthode pour continuer l'exécution.
 
Span< std::byte > segmentView () override
 Méthode permettant d'obtenir une vue sur notre segment.
 
Span< std::byte > segmentView (Int32 rank) override
 Méthode permettant d'obtenir une vue sur le segment d'un autre sous-domaine du noeud.
 
Span< const std::byte > segmentConstView () const override
 Méthode permettant d'obtenir une vue sur notre segment.
 
Span< const std::byte > segmentConstView (Int32 rank) const override
 Méthode permettant d'obtenir une vue sur le segment d'un autre sous-domaine du noeud.
 
void add (Span< const std::byte > elem) override
 Méthode permettant d'ajouter des élements dans notre segment.
 
void add () override
 
void addToAnotherSegment (Int32 rank, Span< const std::byte > elem) override
 Méthode permettant d'ajouter des éléments dans le segment d'un autre sous-domaine.
 
void addToAnotherSegment () override
 
void reserve (Int64 new_capacity) override
 Méthode permettant de réserver de l'espace mémoire dans notre segment.
 
void reserve () override
 
void resize (Int64 new_size) override
 Méthode permettant de redimensionner notre segment.
 
void resize () override
 
void shrink () override
 Méthode permettant de réduire l'espace mémoire réservé pour les segments au minimum nécessaire.
 

Attributs privés

Int32 m_sizeof_type
 
UniqueArray< std::byte > m_segment
 
Int32 m_my_rank = 0
 

Description détaillée

Définition à la ligne 433 du fichier SequentialParallelMng.cc.

Documentation des constructeurs et destructeur

◆ SequentialDynamicMachineMemoryWindowBaseInternal()

Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::SequentialDynamicMachineMemoryWindowBaseInternal ( Int64 sizeof_segment,
Int32 sizeof_type )
inline

Définition à la ligne 438 du fichier SequentialParallelMng.cc.

Documentation des fonctions membres

◆ add() [1/2]

void Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::add ( )
inlineoverridevirtual

◆ add() [2/2]

void Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::add ( Span< const std::byte > elem)
inlineoverridevirtual

Méthode permettant d'ajouter des élements dans notre segment.

Appel collectif.

Note
Ne pas mélanger les appels de cette méthode avec les appels à addToAnotherSegment().

Si le segment est trop petit, il sera redimensionné.

Les sous-domaines ne souhaitant pas ajouter d'éléments peuvent appeler la méthode add() sans paramètres ou cette méthode avec une vue vide.

Paramètres
elemLes éléments à ajouter.

Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.

Définition à la ligne 478 du fichier SequentialParallelMng.cc.

Références Arcane::SpanImpl< T, SizeType, Extent, MinValue >::size().

+ Voici le graphe d'appel pour cette fonction :

◆ addToAnotherSegment() [1/2]

void Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::addToAnotherSegment ( )
inlineoverridevirtual

◆ addToAnotherSegment() [2/2]

void Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::addToAnotherSegment ( Int32 rank,
Span< const std::byte > elem )
inlineoverridevirtual

Méthode permettant d'ajouter des éléments dans le segment d'un autre sous-domaine.

Appel collectif.

Note
Ne pas mélanger les appels de cette méthode avec les appels à add().

Deux sous-domaines ne doivent pas ajouter d'éléments dans un même segment de sous-domaine.

Si le segment ciblé est trop petit, il sera redimensionné.

Les sous-domaines ne souhaitant pas ajouter d'éléments peuvent appeler la méthode addToAnotherSegment() sans paramètres.

Paramètres
rankLe sous-domaine dans lequel ajouter des éléments.
elemLes éléments à ajouter.

Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.

Définition à la ligne 486 du fichier SequentialParallelMng.cc.

Références ARCANE_FATAL, et Arcane::SpanImpl< T, SizeType, Extent, MinValue >::size().

+ Voici le graphe d'appel pour cette fonction :

◆ barrier()

void Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::barrier ( ) const
inlineoverridevirtual

Méthode permettant d'attendre que tous les processus/threads du noeud appellent cette méthode pour continuer l'exécution.

Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.

Définition à la ligne 454 du fichier SequentialParallelMng.cc.

◆ machineRanks()

ConstArrayView< Int32 > Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::machineRanks ( ) const
inlineoverridevirtual

Méthode permettant d'obtenir les rangs qui possèdent un segment dans la fenêtre.

Appel non collectif.

Renvoie
Une vue contenant les ids des rangs.

Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.

Définition à la ligne 450 du fichier SequentialParallelMng.cc.

◆ reserve() [1/2]

void Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::reserve ( )
inlineoverridevirtual

◆ reserve() [2/2]

void Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::reserve ( Int64 new_capacity)
inlineoverridevirtual

Méthode permettant de réserver de l'espace mémoire dans notre segment.

Appel collectif.

Cette méthode ne fait rien si new_capacity est inférieur à l'espace mémoire déjà alloué pour le segment. Pour les processus ne souhaitant pas augmenter l'espace mémoire disponible pour leur segment, il est possible de mettre le paramètre new_capacity à 0 ou d'utiliser la méthode reserve() (sans arguments).

MPI réservera un espace avec une taille supérieur ou égale à new_capacity.

Cette méthode ne redimensionne pas le segment, il faudra toujours passer par la méthode add() pour ajouter des éléments.

Pour redimensionner le segment, la méthode resize(Int64 new_size) est disponible.

Paramètres
new_capacityLa nouvelle capacité demandée.

Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.

Définition à la ligne 498 du fichier SequentialParallelMng.cc.

◆ resize() [1/2]

void Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::resize ( )
inlineoverridevirtual

◆ resize() [2/2]

void Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::resize ( Int64 new_size)
inlineoverridevirtual

Méthode permettant de redimensionner notre segment.

Appel collectif.

Si la taille fournie est inférieure à la taille actuelle du segment, les éléments situés après la taille fournie seront supprimés.

Pour les processus ne souhaitant pas redimensionner leur segment, il est possible de mettre l'argument new_size à -1 ou d'appeler la méthode resize() (sans arguments).

Paramètres
new_sizeLa nouvelle taille.

Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.

Définition à la ligne 503 du fichier SequentialParallelMng.cc.

◆ segmentConstView() [1/2]

Span< const std::byte > Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::segmentConstView ( ) const
inlineoverridevirtual

Méthode permettant d'obtenir une vue sur notre segment.

Appel non collectif.

Renvoie
Une vue.

Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.

Définition à la ligne 467 du fichier SequentialParallelMng.cc.

◆ segmentConstView() [2/2]

Span< const std::byte > Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::segmentConstView ( Int32 rank) const
inlineoverridevirtual

Méthode permettant d'obtenir une vue sur le segment d'un autre sous-domaine du noeud.

Appel non collectif.

Paramètres
rankLe rang du sous-domaine.
Renvoie
Une vue.

Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.

Définition à la ligne 471 du fichier SequentialParallelMng.cc.

Références ARCANE_FATAL.

◆ segmentView() [1/2]

Span< std::byte > Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::segmentView ( )
inlineoverridevirtual

Méthode permettant d'obtenir une vue sur notre segment.

Appel non collectif.

Renvoie
Une vue.

Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.

Définition à la ligne 456 du fichier SequentialParallelMng.cc.

◆ segmentView() [2/2]

Span< std::byte > Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::segmentView ( Int32 rank)
inlineoverridevirtual

Méthode permettant d'obtenir une vue sur le segment d'un autre sous-domaine du noeud.

Appel non collectif.

Paramètres
rankLe rang du sous-domaine.
Renvoie
Une vue.

Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.

Définition à la ligne 460 du fichier SequentialParallelMng.cc.

Références ARCANE_FATAL.

◆ shrink()

void Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::shrink ( )
inlineoverridevirtual

Méthode permettant de réduire l'espace mémoire réservé pour les segments au minimum nécessaire.

Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.

Définition à la ligne 508 du fichier SequentialParallelMng.cc.

◆ sizeofOneElem()

Int32 Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::sizeofOneElem ( ) const
inlineoverridevirtual

Méthode permettant d'obtenir la taille d'un élement de la fenêtre.

Appel non collectif.

Renvoie
La taille d'un élement.

Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.

Définition à la ligne 446 du fichier SequentialParallelMng.cc.

Documentation des données membres

◆ m_my_rank

Int32 Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::m_my_rank = 0
private

Définition à la ligne 517 du fichier SequentialParallelMng.cc.

◆ m_segment

UniqueArray<std::byte> Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::m_segment
private

Définition à la ligne 516 du fichier SequentialParallelMng.cc.

◆ m_sizeof_type

Int32 Arcane::SequentialDynamicMachineMemoryWindowBaseInternal::m_sizeof_type
private

Définition à la ligne 515 du fichier SequentialParallelMng.cc.


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