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

Fonctions membres publiques

 MpiDynamicMachineMemoryWindowBaseInternal (Int64 sizeof_segment, Int32 sizeof_type, const MPI_Comm &comm_machine, Int32 comm_machine_rank, Int32 comm_machine_size, ConstArrayView< Int32 > machine_ranks)
 
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.
 

Fonctions membres privées

void _reallocBarrier (Int64 new_sizeof)
 
void _reallocBarrier (Int32 machine_rank, Int64 new_sizeof)
 
void _reallocBarrier ()
 
void _reallocCollective ()
 
Int32 _worldToMachine (Int32 world) const
 
Int32 _machineToWorld (Int32 machine) const
 

Attributs privés

UniqueArray< MPI_Win > m_all_mpi_win
 
Span< std::byte > m_reserved_part_span
 
MPI_Win m_win_need_resize
 
Span< Int64m_need_resize
 
MPI_Win m_win_actual_sizeof
 
Span< Int64m_sizeof_used_part
 
MPI_Win m_win_target_segments
 
Span< Int32m_target_segments
 
MPI_Comm m_comm_machine
 
Int32 m_comm_machine_size = 0
 
Int32 m_comm_machine_rank = 0
 
Int32 m_sizeof_type = 0
 
ConstArrayView< Int32m_machine_ranks
 

Description détaillée

Définition à la ligne 32 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.

Documentation des constructeurs et destructeur

◆ MpiDynamicMachineMemoryWindowBaseInternal()

Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::MpiDynamicMachineMemoryWindowBaseInternal ( Int64 sizeof_segment,
Int32 sizeof_type,
const MPI_Comm & comm_machine,
Int32 comm_machine_rank,
Int32 comm_machine_size,
ConstArrayView< Int32 > machine_ranks )
explicit

Définition à la ligne 28 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

◆ ~MpiDynamicMachineMemoryWindowBaseInternal()

Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::~MpiDynamicMachineMemoryWindowBaseInternal ( )
override

Définition à la ligne 179 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

Documentation des fonctions membres

◆ _machineToWorld()

Int32 Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::_machineToWorld ( Int32 machine) const
private

Définition à la ligne 670 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

◆ _reallocBarrier() [1/3]

void Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::_reallocBarrier ( )
private

Définition à la ligne 591 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

◆ _reallocBarrier() [2/3]

void Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::_reallocBarrier ( Int32 machine_rank,
Int64 new_sizeof )
private

Définition à la ligne 565 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

◆ _reallocBarrier() [3/3]

void Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::_reallocBarrier ( Int64 new_sizeof)
private

Définition à la ligne 539 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

◆ _reallocCollective()

void Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::_reallocCollective ( )
private

Définition à la ligne 602 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

◆ _worldToMachine()

Int32 Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::_worldToMachine ( Int32 world) const
private

Définition à la ligne 656 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

◆ add() [1/2]

void Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::add ( )
overridevirtual

◆ add() [2/2]

void Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::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 278 du fichier MpiDynamicMachineMemoryWindowBaseInternal.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::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::addToAnotherSegment ( )
overridevirtual

◆ addToAnotherSegment() [2/2]

void Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::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 323 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

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

+ Voici le graphe d'appel pour cette fonction :

◆ barrier()

void Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::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 211 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

◆ machineRanks()

ConstArrayView< Int32 > Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::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 202 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

◆ reserve() [1/2]

void Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::reserve ( )
overridevirtual

◆ reserve() [2/2]

void Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::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 457 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

◆ resize() [1/2]

void Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::resize ( )
overridevirtual

◆ resize() [2/2]

void Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::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 480 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

◆ segmentConstView() [1/2]

Span< const std::byte > Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::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 249 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

Références Arcane::Span< T, Extent, MinValue >::subSpan().

+ Voici le graphe d'appel pour cette fonction :

◆ segmentConstView() [2/2]

Span< const std::byte > Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::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 258 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

◆ segmentView() [1/2]

Span< std::byte > Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::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 220 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

Références Arcane::Span< T, Extent, MinValue >::subSpan().

+ Voici le graphe d'appel pour cette fonction :

◆ segmentView() [2/2]

Span< std::byte > Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::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 229 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

◆ shrink()

void Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::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 525 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

◆ sizeofOneElem()

Int32 Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::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 193 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.

Documentation des données membres

◆ m_all_mpi_win

UniqueArray<MPI_Win> Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::m_all_mpi_win
private

Définition à la ligne 79 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.

◆ m_comm_machine

MPI_Comm Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::m_comm_machine
private

Définition à la ligne 91 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.

◆ m_comm_machine_rank

Int32 Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::m_comm_machine_rank = 0
private

Définition à la ligne 93 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.

◆ m_comm_machine_size

Int32 Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::m_comm_machine_size = 0
private

Définition à la ligne 92 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.

◆ m_machine_ranks

ConstArrayView<Int32> Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::m_machine_ranks
private

Définition à la ligne 97 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.

◆ m_need_resize

Span<Int64> Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::m_need_resize
private

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

◆ m_reserved_part_span

Span<std::byte> Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::m_reserved_part_span
private

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

◆ m_sizeof_type

Int32 Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::m_sizeof_type = 0
private

Définition à la ligne 95 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.

◆ m_sizeof_used_part

Span<Int64> Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::m_sizeof_used_part
private

Définition à la ligne 86 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.

◆ m_target_segments

Span<Int32> Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::m_target_segments
private

Définition à la ligne 89 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.

◆ m_win_actual_sizeof

MPI_Win Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::m_win_actual_sizeof
private

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

◆ m_win_need_resize

MPI_Win Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::m_win_need_resize
private

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

◆ m_win_target_segments

MPI_Win Arcane::MessagePassing::Mpi::MpiDynamicMachineMemoryWindowBaseInternal::m_win_target_segments
private

Définition à la ligne 88 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.


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