Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IVariableSynchronizerMng.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* IVariableSynchronizerMng.h (C) 2000-2023 */
9/* */
10/* Interface du gestionnaire de synchronisation des variables. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13#ifndef ARCANE_CORE_IVARIABLESYNCHRONIZERMNG_H
14#define ARCANE_CORE_IVARIABLESYNCHRONIZERMNG_H
15/*---------------------------------------------------------------------------*/
16/*---------------------------------------------------------------------------*/
17
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25class IVariableSynchronizerMngInternal;
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29/*!
30 * \brief Interface du gestionnaire de synchronisation des variables.
31 */
32class ARCANE_CORE_EXPORT IVariableSynchronizerMng
33{
34 public:
35
36 virtual ~IVariableSynchronizerMng() = default;
37
38 public:
39
40 //! Gestionnaire de parallélisme associé
41 virtual IParallelMng* parallelMng() const = 0;
42
43 /*!
44 * \brief Évènement envoyé en début et fin de synchronisation.
45 *
46 * Cet évènement est envoyé lors des appels aux méthodes
47 * de synchronisation IVariableSynchronizer::synchronize(IVariable* var)
48 * et IVariableSynchronizer::synchronize(VariableCollection vars) pour toutes
49 * les instances de IVariableSynchronizer.
50 */
52
53 /*!
54 * \brief Positionne le niveau de comparaison entre les valeurs avant et après synchronisations.
55 *
56 * Le niveau doit être le même sur l'ensemble des rangs de parallelMng().
57 */
58 virtual void setSynchronizationCompareLevel(Int32 v) = 0;
59
60 //! Niveau de comparaison des valeurs avant et après synchronisation
61 virtual Int32 synchronizationCompareLevel() const = 0;
62
63 //! Indique si on effectue les comparaisons des valeurs avant et après synchronisation
64 virtual bool isSynchronizationComparisonEnabled() const = 0;
65
66 /*!
67 * \brief Affiche les statistiques sur le flot \a ostr.
68 *
69 * Il faut avoir traiter les statistiques via l'appel à flushPendingStats()
70 * avant d'appeler cette méthode
71 */
72 virtual void dumpStats(std::ostream& ostr) const = 0;
73
74 /*!
75 * \brief Traite les statistiques en cours.
76 *
77 * Cette méthode ne fait rien si isComparisonEnabled() vaut \a false.
78 *
79 * Cette méthode est collective sur parallelMng().
80 */
81 virtual void flushPendingStats() = 0;
82
83 public:
84
85 virtual IVariableSynchronizerMngInternal* _internalApi() = 0;
86};
87
88/*---------------------------------------------------------------------------*/
89/*---------------------------------------------------------------------------*/
90
91} // namespace Arcane
92
93/*---------------------------------------------------------------------------*/
94/*---------------------------------------------------------------------------*/
95
96#endif
Déclarations des types généraux de Arcane.
Classe de base d'un handler d'évènement.
Definition Event.h:157
Interface du gestionnaire de parallélisme pour un sous-domaine.
Interface du gestionnaire de synchronisation des variables.
virtual EventObservable< const VariableSynchronizerEventArgs & > & onSynchronized()=0
Évènement envoyé en début et fin de synchronisation.
virtual Int32 synchronizationCompareLevel() const =0
Niveau de comparaison des valeurs avant et après synchronisation.
virtual void setSynchronizationCompareLevel(Int32 v)=0
Positionne le niveau de comparaison entre les valeurs avant et après synchronisations.
virtual bool isSynchronizationComparisonEnabled() const =0
Indique si on effectue les comparaisons des valeurs avant et après synchronisation.
virtual void dumpStats(std::ostream &ostr) const =0
Affiche les statistiques sur le flot ostr.
virtual void flushPendingStats()=0
Traite les statistiques en cours.
virtual IParallelMng * parallelMng() const =0
Gestionnaire de parallélisme associé
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-