Arcane  v3.14.10.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-2022 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-2020 */
9/* */
10/* Interface du superviseur du parallélisme. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IPARALLELSUPERMNG_H
13#define ARCANE_IPARALLELSUPERMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19#include "arcane/Parallel.h"
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
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
99 virtual void* getMPICommunicator() =0;
100
107
127
134 virtual Int32 nbLocalSubDomain() =0;
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
Déclarations des types utilisés dans Arcane.
Interface de l'application.
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
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Vue modifiable d'un tableau d'un type T.
Communicateur pour l'échange de message.
Requête d'un message.
Definition Request.h:77
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eReduceType
Types des réductions supportées.