Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IMessagePassingMng.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/* IMessagePassingMng.h (C) 2000-2024 */
9/* */
10/* Interface du gestionnaire des échanges de messages. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCCORE_MESSAGEPASSING_IMESSAGEPASSINGMNG_H
13#define ARCCORE_MESSAGEPASSING_IMESSAGEPASSINGMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \brief Détruit l'instance \a p.
29 *
30 * L'instance \a p ne doit plus être utilisée après cet appel
31 */
32extern "C++" void ARCCORE_MESSAGEPASSING_EXPORT
33mpDelete(IMessagePassingMng* p);
34
35/*---------------------------------------------------------------------------*/
36/*---------------------------------------------------------------------------*/
37/*!
38 * \brief Interface du gestionnaire des échanges de messages.
39 *
40 * Ce gestionnaire ne fait pas grand chose en lui même et se contente de
41 * déléguer les opérations via l'interface IDispatchers.
42 *
43 * Les instances de ces classes doivent être détruites via la méthode
44 * mpDelete().
45 */
46class ARCCORE_MESSAGEPASSING_EXPORT IMessagePassingMng
47{
48 friend void ARCCORE_MESSAGEPASSING_EXPORT mpDelete(IMessagePassingMng*);
50
51 public:
52
53 // TODO: Rendre obsolète fin 2022: [[deprecated("Use mpDelete() instead")]]
54 virtual ~IMessagePassingMng() = default;
55
56 public:
57
58 //! Rang de cette instance dans le communicateur
59 virtual Int32 commRank() const = 0;
60
61 //! Nombre d'instance dans le communicateur
62 virtual Int32 commSize() const = 0;
63
64 //! Interface pour collecter les temps d'exécution (peut être nul)
66
67 /*!
68 * \brief Communicateur MPI associé à cette instance.
69 *
70 * Le communicateur n'est valide que si l'instance est associée à une
71 * implémentation MPI.
72 */
73 virtual Communicator communicator() const;
74
75 public:
76
77 virtual IDispatchers* dispatchers() = 0;
78};
79
80/*---------------------------------------------------------------------------*/
81/*---------------------------------------------------------------------------*/
82
83} // End namespace Arccore::MessagePassing
84
85/*---------------------------------------------------------------------------*/
86/*---------------------------------------------------------------------------*/
87
88#endif
Déclarations générales de la composante 'message_passing'.
#define ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS()
Macro pour déclarer les méthodes virtuelles 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.
virtual Int32 commRank() const =0
Rang de cette instance dans le communicateur.
virtual Int32 commSize() const =0
Nombre d'instance dans le communicateur.
virtual ITimeMetricCollector * timeMetricCollector() const =0
Interface pour collecter les temps d'exécution (peut être nul)
Espace de nommage contenant les types et déclarations qui gèrent le mécanisme de parallélisme par éch...
void ARCCORE_MESSAGEPASSING_EXPORT mpDelete(IMessagePassingMng *p)
Détruit l'instance p.
std::int32_t Int32
Type entier signé sur 32 bits.