Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
MessagePassingGlobal.h
Aller à la documentation de ce fichier.
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/* MessagePassingGlobal.h (C) 2000-2024 */
9/* */
10/* Définitions globales de la composante 'MessagePassing' de 'Arccore'. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCCORE_MESSAGEPASSING_MESSAGEPASSINGGLOBAL_H
13#define ARCCORE_MESSAGEPASSING_MESSAGEPASSINGGLOBAL_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22#if defined(ARCCORE_COMPONENT_arccore_message_passing)
23#define ARCCORE_MESSAGEPASSING_EXPORT ARCCORE_EXPORT
24#define ARCCORE_MESSAGEPASSING_EXTERN_TPL
25#else
26#define ARCCORE_MESSAGEPASSING_EXPORT ARCCORE_IMPORT
27#define ARCCORE_MESSAGEPASSING_EXTERN_TPL extern
28#endif
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
33namespace Arccore
34{
35class ISerializer;
36class ITimeMetricCollector;
37}
38
40{
41/*!
42 * \brief Numéro correspondant à un rang nul.
43 *
44 * La signification du rang nul dépend de la situation.
45 *
46 * \sa MessageRank.
47 */
48static const Int32 A_NULL_RANK = static_cast<Int32>(-1);
49
50//! Numéro correspondant à un rang nul
51static const Int32 A_NULL_TAG_VALUE = static_cast<Int32>(-1);
52
53//! Numéro correspondant à MPI_ANY_SOURCE
54static const Int32 A_ANY_SOURCE_RANK = static_cast<Int32>(-2);
55
56//! Numéro correspondant à MPI_PROC_NULL
57static const Int32 A_PROC_NULL_RANK = static_cast<Int32>(-3);
58
59class Communicator;
60class SubRequestCompletionInfo;
61class IRequestCreator;
62class IRequestList;
63class ISerializeMessage;
64class ISerializeMessageList;
65class ISerializeDispatcher;
66class Request;
67class MessageId;
68class MessageTag;
69class MessageRank;
70class MessageSourceInfo;
71class PointToPointMessageInfo;
72class IStat;
73class IMessagePassingMng;
74class MessagePassingMng;
75class IDispatchers;
76class Dispatchers;
77class IProfiler;
78class ISubRequest;
79class IControlDispatcher;
80template<typename DataType> class ITypeDispatcher;
81class GatherMessageInfoBase;
82template<typename DataType> class GatherMessageInfo;
83
84/*!
85 * \brief Types des réductions supportées.
86 */
88{
89 ReduceMin, //!< Minimum des valeurs
90 ReduceMax, //!< Maximum des valeurs
91 ReduceSum //!< Somme des valeurs
92};
93
94/*!
95 * \brief Type d'attente.
96 */
98{
99 WaitAll = 0, //! Attend que tous les messages de la liste soient traités
100 WaitSome = 1, //! Attend que au moins un message de la liste soit traité
101 TestSome = 2, //! Traite uniquement les messages qui peuvent l'être sans attendre.
102 //! \deprecated Utiliser TestSome à la place
105/*!
106 * \brief Type indiquant si un message est bloquant ou non.
107 */
109{
110 Blocking = 0,
111 NonBlocking
112};
113
114/*---------------------------------------------------------------------------*/
115/*---------------------------------------------------------------------------*/
116/*!
117 * \brief Type de message point à point.
118 */
120{
121 MsgSend = 0,
122 MsgReceive
123};
124
125/*---------------------------------------------------------------------------*/
126/*---------------------------------------------------------------------------*/
127
128} // End namespace Arccore::MessagePassing
129
130/*---------------------------------------------------------------------------*/
131/*---------------------------------------------------------------------------*/
132
133namespace Arccore::MessagePassing::internal
134{
135class BasicSerializeMessage;
136}
137
138/*---------------------------------------------------------------------------*/
139/*---------------------------------------------------------------------------*/
140
142
143/*---------------------------------------------------------------------------*/
144/*---------------------------------------------------------------------------*/
145
146#endif
147
#define ARCCORE_DECLARE_REFERENCE_COUNTED_CLASS(class_name)
Macro pour déclarer qu'une classe utilise un compteur de référence.
Interface du gestionnaire des échanges de messages.
Espace de nommage contenant les types et déclarations qui gèrent le mécanisme de parallélisme par éch...
eBlockingType
Type indiquant si un message est bloquant ou non.
ePointToPointMessageType
Type de message point à point.
@ WaitSome
Attend que tous les messages de la liste soient traités.
@ TestSome
Attend que au moins un message de la liste soit traité
eReduceType
Types des réductions supportées.
@ ReduceMin
Minimum des valeurs.
@ ReduceSum
Somme des valeurs.
@ ReduceMax
Maximum des valeurs.
Espace de nom de Arccore.
Definition ArcaneTypes.h:24