Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ParallelMngUtils.cc
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/* ParallelMngUtils.cc (C) 2000-2024 */
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/IParallelMngUtilsFactory.h"
18#include "arcane/core/internal/IParallelMngInternal.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
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 }
85 createSubParallelMngRef(IParallelMng* pm, Int32 color, Int32 key)
86 {
88 return pm->_internalApi()->createSubParallelMngRef(color, key);
89 }
90};
91
92/*---------------------------------------------------------------------------*/
93/*---------------------------------------------------------------------------*/
94
95} // End namespace Arcane
96
97/*---------------------------------------------------------------------------*/
98/*---------------------------------------------------------------------------*/
99
101{
102
103/*---------------------------------------------------------------------------*/
104/*---------------------------------------------------------------------------*/
105
108{
109 return ParallelMngUtilsAccessor::createGetVariablesValuesOperation(pm);
110}
111
114{
115 return ParallelMngUtilsAccessor::createTransferValuesOperation(pm);
116}
117
120{
121 return ParallelMngUtilsAccessor::createExchanger(pm);
122}
123
126{
127 return ParallelMngUtilsAccessor::createSynchronizer(pm,family);
128}
129
132{
133 return ParallelMngUtilsAccessor::createSynchronizer(pm,group);
134}
135
138{
139 return ParallelMngUtilsAccessor::createTopology(pm);
140}
141
143createSubParallelMngRef(IParallelMng* pm, Int32 color, Int32 key)
144{
145 return ParallelMngUtilsAccessor::createSubParallelMngRef(pm, color, key);
146}
147
148/*---------------------------------------------------------------------------*/
149/*---------------------------------------------------------------------------*/
150
151} // End namespace Arcane::ParallelMngUtils
152
153/*---------------------------------------------------------------------------*/
154/*---------------------------------------------------------------------------*/
#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.
Interface du gestionnaire de parallélisme pour un sous-domaine.
virtual IParallelMngInternal * _internalApi()=0
API interne à Arcane.
virtual Ref< IParallelMngUtilsFactory > _internalUtilsFactory() const =0
Fabrique des fonctions utilitaires.
Groupe d'entités de maillage.
Definition ItemGroup.h:49
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Classe ' friend' de IParallelMng permettant d'accéder à IParallelMng::_internalUtilsFactory() const;.
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 -*-