Arcane  v3.16.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ParallelMngUtils.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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/* ParallelMngUtils.cc (C) 2000-2025 */
9/* */
10/* Fonctions utilitaires associées aux 'IParallelMng'. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/core/ParallelMngUtils.h"
15
16#include "arcane/core/IParallelMng.h"
17#include "arcane/core/internal/IParallelMngUtilsFactory.h"
18#include "arcane/core/internal/IParallelMngInternal.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29/*!
30 * \brief Classe ' friend' de IParallelMng permettant d'accéder à
31 * IParallelMng::_internalUtilsFactory() const;
32 */
34{
35 public:
36
38 createGetVariablesValuesOperation(IParallelMng* pm)
39 {
41 auto f = pm->_internalUtilsFactory();
42 return f->createGetVariablesValuesOperation(pm);
43 }
44
46 createTransferValuesOperation(IParallelMng* pm)
47 {
49 auto f = pm->_internalUtilsFactory();
50 return f->createTransferValuesOperation(pm);
51 }
52
54 createExchanger(IParallelMng* pm)
55 {
57 auto f = pm->_internalUtilsFactory();
58 return f->createExchanger(pm);
59 }
60
62 createSynchronizer(IParallelMng* pm, IItemFamily* family)
63 {
65 auto f = pm->_internalUtilsFactory();
66 return f->createSynchronizer(pm, family);
67 }
68
70 createSynchronizer(IParallelMng* pm, const ItemGroup& group)
71 {
73 auto f = pm->_internalUtilsFactory();
74 return f->createSynchronizer(pm, group);
75 }
76
78 createTopology(IParallelMng* pm)
79 {
81 auto f = pm->_internalUtilsFactory();
82 return f->createTopology(pm);
83 }
84
86 createSubParallelMngRef(IParallelMng* pm, Int32 color, Int32 key)
87 {
89 return pm->_internalApi()->createSubParallelMngRef(color, key);
90 }
91
93 createSendSerializeMessageRef(IParallelMng* pm, Int32 rank)
94 {
96 auto f = pm->_internalUtilsFactory();
97 return f->createSendSerializeMessage(pm, rank);
98 }
99
101 createReceiveSerializeMessageRef(IParallelMng* pm, Int32 rank)
102 {
104 auto f = pm->_internalUtilsFactory();
105 return f->createReceiveSerializeMessage(pm, rank);
106 }
107};
108
109/*---------------------------------------------------------------------------*/
110/*---------------------------------------------------------------------------*/
111
112} // End namespace Arcane
113
114/*---------------------------------------------------------------------------*/
115/*---------------------------------------------------------------------------*/
116
118{
119
120/*---------------------------------------------------------------------------*/
121/*---------------------------------------------------------------------------*/
122
125{
126 return ParallelMngUtilsAccessor::createGetVariablesValuesOperation(pm);
127}
128
131{
132 return ParallelMngUtilsAccessor::createTransferValuesOperation(pm);
133}
134
137{
138 return ParallelMngUtilsAccessor::createExchanger(pm);
139}
140
143{
144 return ParallelMngUtilsAccessor::createSynchronizer(pm,family);
145}
146
149{
150 return ParallelMngUtilsAccessor::createSynchronizer(pm,group);
151}
152
155{
156 return ParallelMngUtilsAccessor::createTopology(pm);
157}
158
161{
162 return ParallelMngUtilsAccessor::createSubParallelMngRef(pm, color, key);
163}
164
165/*---------------------------------------------------------------------------*/
166/*---------------------------------------------------------------------------*/
167
168} // End namespace Arcane::ParallelMngUtils
169
170/*---------------------------------------------------------------------------*/
171/*---------------------------------------------------------------------------*/
#define ARCANE_CHECK_POINTER(ptr)
Macro retournant le pointeur ptr s'il est non nul ou lancant une exception s'il est nul.
Interface d'une famille d'entités.
Definition IItemFamily.h:84
Interface du gestionnaire de parallélisme pour un sous-domaine.
virtual IParallelMngInternal * _internalApi()=0
API interne à Arcane.
Groupe d'entités de maillage.
Definition ItemGroup.h:49
Classe ' friend' de IParallelMng permettant d'accéder à IParallelMng::_internalUtilsFactory() const;.
Référence à une instance.
Fonctions utilitaires associées à IParallelMng.
Ref< IParallelMng > createSubParallelMngRef(IParallelMng *pm, Int32 color, Int32 key)
Créé un nouveau gestionnaire de parallélisme pour un sous-ensemble des rangs.
Ref< IParallelExchanger > createExchangerRef(IParallelMng *pm)
Retourne une interface pour transférer des messages entre rangs.
Ref< IGetVariablesValuesParallelOperation > createGetVariablesValuesOperationRef(IParallelMng *pm)
Retourne une opération pour récupérer les valeurs d'une variable sur les entités d'un autre sous-doma...
Ref< ITransferValuesParallelOperation > createTransferValuesOperationRef(IParallelMng *pm)
Retourne une opération pour transférer des valeurs entre rangs.
Ref< IParallelTopology > createTopologyRef(IParallelMng *pm)
Créé une instance contenant les infos sur la topologie des rangs de ce gestionnnaire.
Ref< IVariableSynchronizer > createSynchronizerRef(IParallelMng *pm, IItemFamily *family)
Retourne une interface pour synchroniser des variables sur le groupe de la famille family.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int32_t Int32
Type entier signé sur 32 bits.