Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
MessagePassingMng.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 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/* MessagePassingMng.h (C) 2000-2024 */
9/* */
10/* Gestionnaire des échanges de messages. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCCORE_MESSAGEPASSING_MESSAGEPASSINGMNG_H
13#define ARCCORE_MESSAGEPASSING_MESSAGEPASSINGMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19#include "arccore/message_passing/IMessagePassingMng.h"
20#include "arccore/message_passing/Communicator.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30/*!
31 * \brief Gestionnaire des échanges de messages.
32 *
33 * Les instances de ces classes doivent être détruites via la méthode
34 * mpDelete().
35 */
36class ARCCORE_MESSAGEPASSING_EXPORT MessagePassingMng
38, public IMessagePassingMng
39{
41
42 public:
43
44 MessagePassingMng(Int32 comm_rank,Int32 comm_size,IDispatchers* d);
45 // TODO: Rendre obsolète fin 2022: [[deprecated("Use mpDelete() instead")]]
46 ~MessagePassingMng() override;
47
48 public:
49
50 Int32 commRank() const override { return m_comm_rank; }
51 Int32 commSize() const override { return m_comm_size; }
52 IDispatchers* dispatchers() override;
53 ITimeMetricCollector* timeMetricCollector() const override;
54 Communicator communicator() const override;
55
56 public:
57
58 void setTimeMetricCollector(ITimeMetricCollector* c);
59 void setCommunicator(Communicator c);
60
61 private:
62
63 Int32 m_comm_rank;
64 Int32 m_comm_size;
65 IDispatchers* m_dispatchers = nullptr;
66 ITimeMetricCollector* m_time_metric_collector = nullptr;
67 Communicator m_communicator;
68};
69
70/*---------------------------------------------------------------------------*/
71/*---------------------------------------------------------------------------*/
72
73} // End namespace Arccore::MessagePassing
74
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
77
78#endif
#define ARCCORE_DEFINE_REFERENCE_COUNTED_INCLASS_METHODS()
Macro pour définir les méthodes gérant les compteurs de référence.
Interface gérant les statistiques sur l'exécution.
Communicateur pour l'échange de message.
Interface du conteneur des dispatchers.
Interface du gestionnaire des échanges de messages.
Gestionnaire des échanges de messages.
Int32 commSize() const override
Nombre d'instance dans le communicateur.
Int32 commRank() const override
Rang de cette instance dans le communicateur.
Implémentation thread-safe d'un compteur de référence.
Espace de nommage contenant les types et déclarations qui gèrent le mécanisme de parallélisme par éch...
std::int32_t Int32
Type entier signé sur 32 bits.