Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ParallelMngUtilsFactoryBase.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/* ParallelMngUtilsFactoryBase.cc (C) 2000-2025 */
9/* */
10/* Classe de base d'une fabrique pour les fonctions utilitaires de */
11/* IParallelMng. */
12/*---------------------------------------------------------------------------*/
13/*---------------------------------------------------------------------------*/
14
15#include "arcane/impl/internal/ParallelMngUtilsFactoryBase.h"
16
17#include "arcane/utils/Real2.h"
18#include "arcane/utils/Real3.h"
19#include "arcane/utils/Real2x2.h"
20#include "arcane/utils/Real3x3.h"
21
22#include "arcane/impl/GetVariablesValuesParallelOperation.h"
23#include "arcane/impl/TransferValuesParallelOperation.h"
24#include "arcane/impl/ParallelExchanger.h"
25#include "arcane/impl/ParallelTopology.h"
26#include "arcane/impl/internal/VariableSynchronizer.h"
27
28#include "arcane/core/DataTypeDispatchingDataVisitor.h"
29#include "arcane/core/IItemFamily.h"
30#include "arcane/core/internal/SerializeMessage.h"
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34
35namespace Arcane
36{
37
38/*---------------------------------------------------------------------------*/
39/*---------------------------------------------------------------------------*/
40
46
47/*---------------------------------------------------------------------------*/
48/*---------------------------------------------------------------------------*/
49
55
56/*---------------------------------------------------------------------------*/
57/*---------------------------------------------------------------------------*/
58
61{
62 return createParallelExchangerImpl(makeRef(pm));
63}
64
65/*---------------------------------------------------------------------------*/
66/*---------------------------------------------------------------------------*/
67
75
76/*---------------------------------------------------------------------------*/
77/*---------------------------------------------------------------------------*/
78
85
86/*---------------------------------------------------------------------------*/
87/*---------------------------------------------------------------------------*/
88
95
96/*---------------------------------------------------------------------------*/
97/*---------------------------------------------------------------------------*/
98
101{
102 Int32 my_rank = pm->commRank();
103 auto x = new SerializeMessage(my_rank, rank, ISerializeMessage::MT_Send);
105}
106
107/*---------------------------------------------------------------------------*/
108/*---------------------------------------------------------------------------*/
109
112{
113 Int32 my_rank = pm->commRank();
114 auto x = new SerializeMessage(my_rank, rank, ISerializeMessage::MT_Recv);
116}
117
118/*---------------------------------------------------------------------------*/
119/*---------------------------------------------------------------------------*/
120
121} // End namespace Arcane
122
123/*---------------------------------------------------------------------------*/
124/*---------------------------------------------------------------------------*/
Opérations pour accéder aux valeurs de variables d'un autre sous-domaine.
Interface d'une famille d'entités.
Definition IItemFamily.h:84
virtual ItemGroup allItems() const =0
Groupe de toutes les entités.
Interface du gestionnaire de parallélisme pour un sous-domaine.
virtual Int32 commRank() const =0
Rang de cette instance dans le communicateur.
Groupe d'entités de maillage.
Definition ItemGroup.h:49
Ref< IVariableSynchronizer > createSynchronizer(IParallelMng *pm, IItemFamily *family) override
Retourne une interface pour synchroniser des variables sur le groupe de la famille family.
Ref< IGetVariablesValuesParallelOperation > createGetVariablesValuesOperation(IParallelMng *pm) override
Retourne une opération pour récupérer les valeurs d'une variable sur les entités d'un autre sous-doma...
Ref< ISerializeMessage > createReceiveSerializeMessage(IParallelMng *pm, Int32 rank) override
Créé un message de sérialisation non bloquant en réception du rang rank.
Ref< ITransferValuesParallelOperation > createTransferValuesOperation(IParallelMng *pm) override
Retourne une opération pour transférer des valeurs entre rangs.
Ref< IParallelExchanger > createExchanger(IParallelMng *pm) override
Retourne une interface pour transférer des messages entre rangs.
Ref< IParallelTopology > createTopology(IParallelMng *pm) override
Créé une instance contenant les infos sur la topologie des rangs de ce gestionnnaire.
Ref< ISerializeMessage > createSendSerializeMessage(IParallelMng *pm, Int32 rank) override
Créé un message de sérialisation non bloquant en envoi au rang rank.
Informations sur la topologie d'allocation des coeurs de calcul.
virtual void initialize()
Initialise l'instance. Cette opération est collective.
Référence à une instance.
Message utilisant un SerializeBuffer.
Opérations pour transférer des valeurs vers d'autres sous-domaine.
Interface d'un service de synchronisation de variable.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
auto makeRef(InstanceType *t) -> Ref< InstanceType >
Créé une référence sur un pointeur.
std::int32_t Int32
Type entier signé sur 32 bits.