Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Otf2MessagePassingProfilingService.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* Otf2MessagePassingProfilingService.h (C) 2000-2019 */
9/* */
10/* Informations de performances du "message passing" au format Otf2 */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_STD_OTF2MESSAGEPASSINGPROFILINGSERVICE_H
13#define ARCANE_STD_OTF2MESSAGEPASSINGPROFILINGSERVICE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/AbstractService.h"
18#include "arcane/ISubDomain.h"
19#include "arcane/ObserverPool.h"
20#include "arcane/VariableSynchronizerEventArgs.h"
21#include "arcane/utils/IMessagePassingProfilingService.h"
22#include "arcane/utils/String.h"
23#include "arccore/message_passing/Stat.h"
24#include "arcane/std/Otf2LibWrapper.h"
25#include "arcane/std/Otf2MpiProfiling.h"
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30namespace Arcane
31{
32namespace MP = ::Arccore::MessagePassing;
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
40: public AbstractService
42{
43 public:
45 ~Otf2MessagePassingProfilingService() noexcept override;
46
47 void startProfiling() override;
48 void stopProfiling() override;
49 void printInfos(std::ostream& output) override;
50 String implName() override;
51
52 private:
53 void _updateFromBeginEntryPointEvt();
54 void _updateFromEndEntryPointEvt();
55 void _updateFromSynchronizeEvt(const VariableSynchronizerEventArgs& arg);
56
57 ISubDomain* m_sub_domain = nullptr;
58 Otf2LibWrapper m_otf2_wrapper;
59 Otf2MpiProfiling m_otf2_prof;
60 MP::IProfiler* m_prof_backup = nullptr;
61 ObserverPool m_observer;
62 EventObserverPool m_observer_pool;
63 String m_impl_name;
64 MP::IControlDispatcher* m_control_dispatcher = nullptr;
65};
66
67/*---------------------------------------------------------------------------*/
68/*---------------------------------------------------------------------------*/
69
70} // namespace Arcane
71
72/*---------------------------------------------------------------------------*/
73/*---------------------------------------------------------------------------*/
74
75#endif
Classe de base d'un service.
Conserve des références d'observateurs.
Definition Event.h:112
Interface d'un service de profiling dedie au "message passing".
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Liste d'observateurs.
Classe d'encapsulation des fonctions de la librairie OTF2.
Service de profiling du "message passing" au format JSON.
void printInfos(std::ostream &output) override
Affiche les informations issues du profiling.
String implName() override
Donne le nom du service qui implemente l'interface.
Implementation de l'interface des operations MPI. Decore chacun des appels MPI avec les fonctions de ...
Structure contenant les informations pour créer un service.
Arguments de l'évènement notifiant une synchronisation de variables.
Manage control streams for parallel messages.
Interface d'un profiler pour les échanges de messages.
Definition IProfiler.h:31
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Espace de nommage contenant les types et déclarations qui gèrent le mécanisme de parallélisme par éch...