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

Fonctions membres publiques

 SharedMemoryDynamicMachineMemoryWindowBaseInternal (Int32 my_rank, ConstArrayView< Int32 > ranks, Int32 sizeof_type, Ref< UniqueArray< UniqueArray< std::byte > > > windows, Ref< UniqueArray< Int32 > > target_segments, IThreadBarrier *barrier)
 
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_my_rank = 0
 
Int32 m_sizeof_type = 0
 
ConstArrayView< Int32m_ranks
 
Ref< UniqueArray< UniqueArray< std::byte > > > m_windows
 
SmallSpan< UniqueArray< std::byte > > m_windows_span
 
Ref< UniqueArray< Int32 > > m_target_segments
 
SmallSpan< Int32m_target_segments_span
 
IThreadBarrierm_barrier = nullptr
 

Description détaillée

Définition à la ligne 36 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.h.

Documentation des constructeurs et destructeur

◆ SharedMemoryDynamicMachineMemoryWindowBaseInternal()

Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::SharedMemoryDynamicMachineMemoryWindowBaseInternal ( Int32 my_rank,
ConstArrayView< Int32 > ranks,
Int32 sizeof_type,
Ref< UniqueArray< UniqueArray< std::byte > > > windows,
Ref< UniqueArray< Int32 > > target_segments,
IThreadBarrier * barrier )

Définition à la ligne 31 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.cc.

Documentation des fonctions membres

◆ add() [1/2]

void Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::add ( )
overridevirtual

◆ add() [2/2]

void Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::add ( Span< const std::byte > elem)
overridevirtual

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 109 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.cc.

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

+ Voici le graphe d'appel pour cette fonction :

◆ addToAnotherSegment() [1/2]

void Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::addToAnotherSegment ( )
overridevirtual

◆ addToAnotherSegment() [2/2]

void Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::addToAnotherSegment ( Int32 rank,
Span< const std::byte > elem )
overridevirtual

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 133 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.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::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::barrier ( ) const
overridevirtual

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 64 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.cc.

◆ machineRanks()

ConstArrayView< Int32 > Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::machineRanks ( ) const
overridevirtual

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 55 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.cc.

◆ reserve() [1/2]

void Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::reserve ( )
overridevirtual

◆ reserve() [2/2]

void Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::reserve ( Int64 new_capacity)
overridevirtual

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 173 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.cc.

◆ resize() [1/2]

void Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::resize ( )
overridevirtual

◆ resize() [2/2]

void Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::resize ( Int64 new_size)
overridevirtual

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 194 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.cc.

◆ segmentConstView() [1/2]

Span< const std::byte > Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::segmentConstView ( ) const
overridevirtual

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 91 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.cc.

◆ segmentConstView() [2/2]

Span< const std::byte > Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::segmentConstView ( Int32 rank) const
overridevirtual

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 100 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.cc.

◆ segmentView() [1/2]

Span< std::byte > Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::segmentView ( )
overridevirtual

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 73 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.cc.

◆ segmentView() [2/2]

Span< std::byte > Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::segmentView ( Int32 rank)
overridevirtual

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 82 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.cc.

◆ shrink()

void Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::shrink ( )
overridevirtual

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 215 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.cc.

◆ sizeofOneElem()

Int32 Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::sizeofOneElem ( ) const
overridevirtual

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 46 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.cc.

Documentation des données membres

◆ m_barrier

IThreadBarrier* Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::m_barrier = nullptr
private

Définition à la ligne 83 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.h.

◆ m_my_rank

Int32 Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::m_my_rank = 0
private

Définition à la ligne 73 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.h.

◆ m_ranks

ConstArrayView<Int32> Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::m_ranks
private

Définition à la ligne 75 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.h.

◆ m_sizeof_type

Int32 Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::m_sizeof_type = 0
private

Définition à la ligne 74 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.h.

◆ m_target_segments

Ref<UniqueArray<Int32> > Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::m_target_segments
private

Définition à la ligne 80 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.h.

◆ m_target_segments_span

SmallSpan<Int32> Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::m_target_segments_span
private

Définition à la ligne 81 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.h.

◆ m_windows

Ref<UniqueArray<UniqueArray<std::byte> > > Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::m_windows
private

Définition à la ligne 77 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.h.

◆ m_windows_span

SmallSpan<UniqueArray<std::byte> > Arcane::MessagePassing::SharedMemoryDynamicMachineMemoryWindowBaseInternal::m_windows_span
private

Définition à la ligne 78 du fichier SharedMemoryDynamicMachineMemoryWindowBaseInternal.h.


La documentation de cette classe a été générée à partir des fichiers suivants :