Arcane  v3.16.8.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IParallelSuperMng.h
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/* IParallelSuperMng.h (C) 2000-2025 */
9/* */
10/* Interface du superviseur du parallélisme. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IPARALLELSUPERMNG_H
13#define ARCANE_CORE_IPARALLELSUPERMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30class IApplication;
31class IParallelMng;
32class IThreadMng;
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
40class ARCANE_CORE_EXPORT IParallelSuperMng
41{
42 public:
43
44 typedef Parallel::Request Request;
45 typedef Parallel::eReduceType eReduceType;
46
47 public:
48
49 virtual ~IParallelSuperMng() {}
50
51 public:
52
61 virtual void build() =0;
62
70 virtual void initialize() =0;
71
72 public:
73
75 virtual IApplication* application() const =0;
76
78 virtual IThreadMng* threadMng() const =0;
79
81 virtual bool isParallel() const =0;
82
84 virtual Int32 commRank() const =0;
85
87 virtual Int32 commSize() const =0;
88
90 virtual Int32 traceRank() const =0;
91
98
99 virtual void* getMPICommunicator() =0;
100
107
127
135
143 virtual void tryAbort() =0;
144
146 virtual bool isMasterIO() const =0;
147
153 virtual Int32 masterIORank() const =0;
154
158 //virtual IParallelMng* worldParallelMng() const =0;
159
161 virtual void barrier() =0;
162
163 public:
164
166
167
176 virtual void broadcast(ByteArrayView send_buf,Integer process_id) =0;
177 virtual void broadcast(Int32ArrayView send_buf,Integer process_id) =0;
178 virtual void broadcast(Int64ArrayView send_buf,Integer process_id) =0;
179 virtual void broadcast(RealArrayView send_buf,Integer process_id) =0;
181};
182
183/*---------------------------------------------------------------------------*/
184/*---------------------------------------------------------------------------*/
185
186} // End namespace Arcane
187
188/*---------------------------------------------------------------------------*/
189/*---------------------------------------------------------------------------*/
190
191#endif
Fichier contenant les déclarations concernant le modèle de programmation par échange de message.
Déclarations des types utilisés dans Arcane.
Interface de l'application.
Interface du gestionnaire de parallélisme pour un sous-domaine.
Classe abstraite du superviseur de parallélisme.
virtual void broadcast(ByteArrayView send_buf, Integer process_id)=0
Envoie un tableau de valeurs sur tous les processus Cette opération synchronise le tableau de valeur ...
virtual void tryAbort()=0
Tente de faire un abort.
virtual ~IParallelSuperMng()
Libère les ressources.
virtual IThreadMng * threadMng() const =0
Gestionnaire de thread.
virtual bool isMasterIO() const =0
true si l'instance est un gestionnaire maître des entrées/sorties.
virtual Int32 traceRank() const =0
Rang de cette instance pour les traces.
virtual Int32 commRank() const =0
Retourne le numéro du process (compris entre 0 et nbProcess()-1)
virtual void barrier()=0
Gestionnaire de parallèlisme pour l'ensemble des ressources allouées.
virtual Parallel::Communicator communicator() const =0
Communicateur MPI associé à ce gestionnaire.
virtual bool isParallel() const =0
Retourne true si l'exécution est parallèle.
virtual void * getMPICommunicator()=0
Adresse du communicateur MPI associé à ce gestionnaire.
virtual IApplication * application() const =0
Retourne le gestionnaire principal.
virtual Int32 nbLocalSubDomain()=0
Nombre de sous-domaines à créér localement.
virtual Ref< IParallelMng > internalCreateWorldParallelMng(Int32 local_rank)=0
Créé un gestionnaire de parallélisme pour l'ensemble des coeurs alloués.
virtual void initialize()=0
Initialise l'instance.
virtual Int32 masterIORank() const =0
Rang de l'instance gérant les entrées/sorties (pour laquelle isMasterIO() est vrai)
virtual void build()=0
Construit les membres l'instance.
virtual Int32 commSize() const =0
Retourne le nombre total de process utilisés.
Interface d'un gestionnaire de thread.
Definition IThreadMng.h:30
Communicateur pour l'échange de message.
Requête d'un message.
Definition Request.h:77
Référence à une instance.
eReduceType
Types des réductions supportées.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
ArrayView< Int64 > Int64ArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:538
ArrayView< Byte > ByteArrayView
Equivalent C d'un tableau à une dimension de caractères.
Definition UtilsTypes.h:534
Int32 Integer
Type représentant un entier.
ArrayView< Int32 > Int32ArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:540
ArrayView< Real > RealArrayView
Equivalent C d'un tableau à une dimension de réels.
Definition UtilsTypes.h:546
std::int32_t Int32
Type entier signé sur 32 bits.