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< Int32 > | machineRanks () 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< Int64 > | m_need_resize |
MPI_Win | m_win_actual_sizeof |
Span< Int64 > | m_sizeof_used_part |
MPI_Win | m_win_target_segments |
Span< Int32 > | m_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< Int32 > | m_machine_ranks |
Définition à la ligne 32 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.
|
explicit |
Définition à la ligne 28 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
|
override |
Définition à la ligne 179 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
|
private |
Définition à la ligne 670 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
|
private |
Définition à la ligne 591 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
|
private |
Définition à la ligne 565 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
|
private |
Définition à la ligne 539 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
|
private |
Définition à la ligne 602 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
|
private |
Définition à la ligne 656 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
|
overridevirtual |
Voir add(Span<const std::byte> elem).
Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.
Définition à la ligne 313 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
|
overridevirtual |
Méthode permettant d'ajouter des élements dans notre segment.
Appel collectif.
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.
elem | Les é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().
|
overridevirtual |
Voir addToAnotherSegment(Int32 rank, Span<const std::byte> elem).
Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.
Définition à la ligne 423 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
|
overridevirtual |
Méthode permettant d'ajouter des éléments dans le segment d'un autre sous-domaine.
Appel collectif.
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.
rank | Le sous-domaine dans lequel ajouter des éléments. |
elem | Les é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().
|
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.
|
overridevirtual |
Méthode permettant d'obtenir les rangs qui possèdent un segment dans la fenêtre.
Appel non collectif.
Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.
Définition à la ligne 202 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
|
overridevirtual |
Voir reserve(Int64 new_capacity)
Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.
Définition à la ligne 471 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
|
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.
new_capacity | La nouvelle capacité demandée. |
Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.
Définition à la ligne 457 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
|
overridevirtual |
Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.
Définition à la ligne 515 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
|
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).
new_size | La nouvelle taille. |
Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.
Définition à la ligne 480 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
|
overridevirtual |
Méthode permettant d'obtenir une vue sur notre segment.
Appel non collectif.
Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.
Définition à la ligne 249 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
Références Arcane::Span< T, Extent, MinValue >::subSpan().
|
overridevirtual |
Méthode permettant d'obtenir une vue sur le segment d'un autre sous-domaine du noeud.
Appel non collectif.
rank | Le rang du sous-domaine. |
Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.
Définition à la ligne 258 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
|
overridevirtual |
Méthode permettant d'obtenir une vue sur notre segment.
Appel non collectif.
Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.
Définition à la ligne 220 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
Références Arcane::Span< T, Extent, MinValue >::subSpan().
|
overridevirtual |
Méthode permettant d'obtenir une vue sur le segment d'un autre sous-domaine du noeud.
Appel non collectif.
rank | Le rang du sous-domaine. |
Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.
Définition à la ligne 229 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
|
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.
|
overridevirtual |
Méthode permettant d'obtenir la taille d'un élement de la fenêtre.
Appel non collectif.
Implémente Arcane::MessagePassing::IDynamicMachineMemoryWindowBaseInternal.
Définition à la ligne 193 du fichier MpiDynamicMachineMemoryWindowBaseInternal.cc.
|
private |
Définition à la ligne 79 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.
|
private |
Définition à la ligne 91 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.
|
private |
Définition à la ligne 93 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.
|
private |
Définition à la ligne 92 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.
|
private |
Définition à la ligne 97 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.
|
private |
Définition à la ligne 83 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.
|
private |
Définition à la ligne 80 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.
|
private |
Définition à la ligne 95 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.
|
private |
Définition à la ligne 86 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.
|
private |
Définition à la ligne 89 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.
|
private |
Définition à la ligne 85 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.
|
private |
Définition à la ligne 82 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.
|
private |
Définition à la ligne 88 du fichier MpiDynamicMachineMemoryWindowBaseInternal.h.