Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
JsonMessagePassingProfilingService.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/* JsonMessagePassingProfilingService.h (C) 2000-2019 */
9/* */
10/* Informations de performances du "message passing" au format JSON */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_STD_JSONMESSAGEPASSINGPROFILINGSERVICE_H
13#define ARCANE_STD_JSONMESSAGEPASSINGPROFILINGSERVICE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/AbstractService.h"
18#include "arcane/ISubDomain.h"
19#include "arcane/ObserverPool.h"
20#include "arcane/utils/IMessagePassingProfilingService.h"
21#include "arcane/utils/String.h"
22#include "arccore/message_passing/Stat.h"
23
24#include <map>
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29ARCANE_BEGIN_NAMESPACE
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
37: public AbstractService
39{
40 public:
41
44
45 public:
46
47 void startProfiling() override;
48 void stopProfiling() override;
49 void printInfos(std::ostream& output) override;
50 String implName() override;
51
52 private:
53
55 typedef std::map<String, Arccore::MessagePassing::StatData> StatDataMap;
56
57 private:
58
59 ISubDomain* m_sub_domain;
60 ObserverPool m_observer;
61 JSONWriter* m_json_writer;
62 // { entry point name, {message passing infos} }
63 StatDataMap m_ep_mpstat_col;
64 String m_impl_name;
65
66private:
67
68 void _dumpCurrentIterationInJSON();
69
70 void _updateFromBeginEntryPointEvt();
71 void _updateFromEndEntryPointEvt();
72 void _updateFromBeginIterationEvt();
73 void _updateFromEndIterationEvt();
74};
75
76/*---------------------------------------------------------------------------*/
77/*---------------------------------------------------------------------------*/
78
79ARCANE_END_NAMESPACE
80
81/*---------------------------------------------------------------------------*/
82/*---------------------------------------------------------------------------*/
83
84#endif
Classe de base d'un service.
Interface d'un service de profiling dedie au "message passing".
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Ecrivain au format JSON.
Definition JSONWriter.h:33
Service de profiling du "message passing" au format JSON.
std::map< String, Arccore::MessagePassing::StatData > StatDataMap
Liste des statistiques par point d'entree.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Liste d'observateurs.
Structure contenant les informations pour créer un service.
Chaîne de caractères unicode.