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

Fonctions membres publiques

 HybridDynamicMachineMemoryWindowBaseInternal (Int32 my_rank_mpi, Int32 my_rank_local_proc, Int32 nb_rank_local_proc, ConstArrayView< Int32 > ranks, Int32 sizeof_type, Ref< Mpi::MpiDynamicMultiMachineMemoryWindowBaseInternal > mpi_windows, 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_local_proc = 0
 
Int32 m_nb_rank_local_proc = 0
 
Int32 m_my_rank_mpi = 0
 
ConstArrayView< Int32m_machine_ranks
 
Int32 m_sizeof_type = 0
 
Ref< Mpi::MpiDynamicMultiMachineMemoryWindowBaseInternalm_mpi_windows
 
IThreadBarrierm_thread_barrier = nullptr
 

Description détaillée

Définition à la ligne 39 du fichier HybridDynamicMachineMemoryWindowBaseInternal.h.

Documentation des constructeurs et destructeur

◆ HybridDynamicMachineMemoryWindowBaseInternal()

Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::HybridDynamicMachineMemoryWindowBaseInternal ( Int32 my_rank_mpi,
Int32 my_rank_local_proc,
Int32 nb_rank_local_proc,
ConstArrayView< Int32 > ranks,
Int32 sizeof_type,
Ref< Mpi::MpiDynamicMultiMachineMemoryWindowBaseInternal > mpi_windows,
IThreadBarrier * barrier )

Définition à la ligne 34 du fichier HybridDynamicMachineMemoryWindowBaseInternal.cc.

Documentation des fonctions membres

◆ add() [1/2]

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

◆ add() [2/2]

void Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::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 122 du fichier HybridDynamicMachineMemoryWindowBaseInternal.cc.

◆ addToAnotherSegment() [1/2]

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

◆ addToAnotherSegment() [2/2]

void Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::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 149 du fichier HybridDynamicMachineMemoryWindowBaseInternal.cc.

◆ barrier()

void Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::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 66 du fichier HybridDynamicMachineMemoryWindowBaseInternal.cc.

◆ machineRanks()

ConstArrayView< Int32 > Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::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 57 du fichier HybridDynamicMachineMemoryWindowBaseInternal.cc.

◆ reserve() [1/2]

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

◆ reserve() [2/2]

void Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::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 182 du fichier HybridDynamicMachineMemoryWindowBaseInternal.cc.

◆ resize() [1/2]

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

◆ resize() [2/2]

void Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::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 209 du fichier HybridDynamicMachineMemoryWindowBaseInternal.cc.

◆ segmentConstView() [1/2]

Span< const std::byte > Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::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 100 du fichier HybridDynamicMachineMemoryWindowBaseInternal.cc.

◆ segmentConstView() [2/2]

Span< const std::byte > Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::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 109 du fichier HybridDynamicMachineMemoryWindowBaseInternal.cc.

◆ segmentView() [1/2]

Span< std::byte > Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::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 78 du fichier HybridDynamicMachineMemoryWindowBaseInternal.cc.

◆ segmentView() [2/2]

Span< std::byte > Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::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 87 du fichier HybridDynamicMachineMemoryWindowBaseInternal.cc.

◆ shrink()

void Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::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 236 du fichier HybridDynamicMachineMemoryWindowBaseInternal.cc.

◆ sizeofOneElem()

Int32 Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::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 48 du fichier HybridDynamicMachineMemoryWindowBaseInternal.cc.

Documentation des données membres

◆ m_machine_ranks

ConstArrayView<Int32> Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::m_machine_ranks
private

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

◆ m_mpi_windows

Ref<Mpi::MpiDynamicMultiMachineMemoryWindowBaseInternal> Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::m_mpi_windows
private

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

◆ m_my_rank_local_proc

Int32 Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::m_my_rank_local_proc = 0
private

Définition à la ligne 76 du fichier HybridDynamicMachineMemoryWindowBaseInternal.h.

◆ m_my_rank_mpi

Int32 Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::m_my_rank_mpi = 0
private

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

◆ m_nb_rank_local_proc

Int32 Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::m_nb_rank_local_proc = 0
private

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

◆ m_sizeof_type

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

Définition à la ligne 82 du fichier HybridDynamicMachineMemoryWindowBaseInternal.h.

◆ m_thread_barrier

IThreadBarrier* Arcane::MessagePassing::HybridDynamicMachineMemoryWindowBaseInternal::m_thread_barrier = nullptr
private

Définition à la ligne 85 du fichier HybridDynamicMachineMemoryWindowBaseInternal.h.


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