Calcule de la liste des entités à synchroniser. Plus de détails...
#include <arcane/impl/internal/VariableSynchronizerComputeList.h>
Classes | |
class | GhostRankInfo |
class | RankInfo |
class | ShareRankInfo |
Fonctions membres publiques | |
VariableSynchronizerComputeList (VariableSynchronizer *var_sync) | |
void | compute () |
Création de la liste des éléments de synchronisation. | |
Fonctions membres publiques hérités de Arccore::TraceAccessor | |
TraceAccessor (ITraceMng *m) | |
Construit un accesseur via le gestionnaire de trace m. | |
TraceAccessor (const TraceAccessor &rhs) | |
Constructeur par recopie. | |
TraceAccessor & | operator= (const TraceAccessor &rhs) |
Opérateur de recopie. | |
virtual | ~TraceAccessor () |
Libère les ressources. | |
ITraceMng * | traceMng () const |
Gestionnaire de trace. | |
TraceMessage | info () const |
Flot pour un message d'information. | |
TraceMessage | pinfo () const |
Flot pour un message d'information en parallèle. | |
TraceMessage | info (char category) const |
Flot pour un message d'information d'une catégorie donnée. | |
TraceMessage | pinfo (char category) const |
Flot pour un message d'information parallèle d'une catégorie donnée. | |
TraceMessage | info (bool v) const |
Flot pour un message d'information. | |
TraceMessage | warning () const |
Flot pour un message d'avertissement. | |
TraceMessage | pwarning () const |
TraceMessage | error () const |
Flot pour un message d'erreur. | |
TraceMessage | perror () const |
TraceMessage | log () const |
Flot pour un message de log. | |
TraceMessage | plog () const |
Flot pour un message de log. | |
TraceMessage | logdate () const |
Flot pour un message de log précédé de la date. | |
TraceMessage | fatal () const |
Flot pour un message d'erreur fatale. | |
TraceMessage | pfatal () const |
Flot pour un message d'erreur fatale en parallèle. | |
TraceMessageDbg | debug (Trace::eDebugLevel=Trace::Medium) const |
Flot pour un message de debug. | |
Trace::eDebugLevel | configDbgLevel () const |
Niveau debug du fichier de configuration. | |
TraceMessage | info (Int32 verbose_level) const |
Flot pour un message d'information d'un niveau donné | |
TraceMessage | linfo () const |
Flot pour un message d'information avec le niveau d'information local à cette instance. | |
TraceMessage | linfo (Int32 relative_level) const |
Flot pour un message d'information avec le niveau d'information local à cette instance. | |
void | fatalMessage (const StandaloneTraceMessage &o) const |
Fonctions membres privées | |
void | _createList (UniqueArray< SharedArray< Int32 > > &boundary_items) |
void | _checkValid (ArrayView< GhostRankInfo > ghost_ranks_info, ArrayView< ShareRankInfo > share_ranks_info) |
void | _printSyncList () |
Attributs privés | |
VariableSynchronizer * | m_synchronizer |
IParallelMng * | m_parallel_mng = nullptr |
ItemGroup | m_item_group |
bool | m_is_verbose = false |
bool | m_is_debug = false |
Membres hérités additionnels | |
Fonctions membres protégées hérités de Arccore::TraceAccessor | |
void | _setLocalVerboseLevel (Int32 v) |
Int32 | _localVerboseLevel () const |
Calcule de la liste des entités à synchroniser.
Définition à la ligne 36 du fichier VariableSynchronizerComputeList.h.
|
explicit |
Définition à la ligne 40 du fichier VariableSynchronizerComputeList.cc.
|
private |
Définition à la ligne 446 du fichier VariableSynchronizerComputeList.cc.
|
private |
Ids des entités du groupe
Définition à la ligne 135 du fichier VariableSynchronizerComputeList.cc.
Références Arcane::IParallelMng::allGather(), ARCANE_FATAL, Arcane::IParallelMng::commRank(), Arcane::IParallelMng::commSize(), Arccore::ArrayView< T >::empty(), Arccore::Trace::Highest, Arcane::Item::localId(), Arcane::IParallelMng::recv(), Arcane::IParallelMng::reduce(), Arcane::Item::uniqueId(), et Arcane::IParallelMng::waitAllRequests().
|
private |
Définition à la ligne 544 du fichier VariableSynchronizerComputeList.cc.
void Arcane::VariableSynchronizerComputeList::compute | ( | ) |
Création de la liste des éléments de synchronisation.
Pour générer les infos de synchronisations, on suppose que le owner() de chaque entité est correcte
A partir du fichier de communication, contruit les structures pour la synchronisation. Il s'agit d'une liste d'éléments, chaque élément étant composé du rang du processeur avec lequel il faut communiquer et les localId() des entités du maillage qu'on doit lui envoyer et qu'on doit réceptionner.
Si le groupe associé à cette instance est allItems(), on vérifie que toutes les entités de la famille sont soit propres au domaine, soit fantomes. Si une entité n'est pas dans ce cas, alors elle ne sera pas synchronisée et la cohérence du parallélisme ne sera pas assuré: il s'agit d'une erreur fatale.
Le fonctionnement sur tout groupe (pluys que allItems) est principalement subordonné au fait que changeLocalIds() soit implementé sur tous les groupes.
Définition à la ligne 74 du fichier VariableSynchronizerComputeList.cc.
Références ARCANE_FATAL, ENUMERATE_ITEM, et Arcane::Item::itemBase().
Définition à la ligne 151 du fichier VariableSynchronizerComputeList.h.
Définition à la ligne 150 du fichier VariableSynchronizerComputeList.h.
|
private |
Définition à la ligne 149 du fichier VariableSynchronizerComputeList.h.
|
private |
Définition à la ligne 148 du fichier VariableSynchronizerComputeList.h.
|
private |
Définition à la ligne 147 du fichier VariableSynchronizerComputeList.h.