Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
SequentialParallelSuperMng.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/* SequentialParallelSuperMng.h (C) 2000-2020 */
9/* */
10/* Superviseur du parallélisme en séquentiel. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IMPL_SEQUENTIALPARALLELSUPERMNGR_H
13#define ARCANE_IMPL_SEQUENTIALPARALLELSUPERMNGR_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/utils/ScopedPtr.h"
19
20#include "arcane/AbstractService.h"
21#include "arcane/ParallelSuperMngDispatcher.h"
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26namespace Arcane
27{
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
37class ARCANE_IMPL_EXPORT SequentialParallelSuperMng
38: public AbstractService
40{
41 public:
42
43 // Construit un superviseur séquentiel lié au superviseur \a sm
47
48 void build() override;
49 void initialize() override;
50 IApplication* application() const override { return m_application; }
51 IThreadMng* threadMng() const override { return m_thread_mng; }
52 bool isParallel() const override { return false; }
53 Int32 commRank() const override { return 0; }
54 Int32 commSize() const override { return 0; }
55 Int32 traceRank() const override { return 0; }
56 void* getMPICommunicator() override { return m_communicator.communicatorAddress(); }
57 MP::Communicator communicator() const override { return m_communicator; }
58 bool isMasterIO() const override { return true; }
59 Integer masterIORank() const override { return 0; }
60 Integer nbLocalSubDomain() override { return 1; }
61 void barrier() override { }
62
63 Ref<IParallelMng> internalCreateWorldParallelMng(Int32 local_rank) override;
64 void tryAbort() override;
65
66 private:
67
69 IThreadMng* m_thread_mng;
70 ITimerMng* m_timer_mng;
71 ScopedPtrT<ITimerMng> m_owned_timer_mng;
72 MP::Communicator m_communicator;
73};
74
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
77
78} // End namespace Arcane
79
80/*---------------------------------------------------------------------------*/
81/*---------------------------------------------------------------------------*/
82
83#endif
84
Classe de base d'un service.
Interface de l'application.
Interface d'un gestionnaire de thread.
Definition IThreadMng.h:30
Interface d'un gestionnaire de timer.
Definition ITimerMng.h:53
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Redirige la gestion des messages des sous-domaines suivant le type de l'argument.
Superviseur du parallélisme en mode séquentiel.
Integer nbLocalSubDomain() override
Nombre de sous-domaines à créér localement.
void barrier() override
Gestionnaire de parallèlisme pour l'ensemble des ressources allouées.
void * getMPICommunicator() override
Adresse du communicateur MPI associé à ce gestionnaire.
MP::Communicator communicator() const override
Communicateur MPI associé à ce gestionnaire.
Integer masterIORank() const override
Rang de l'instance gérant les entrées/sorties (pour laquelle isMasterIO() est vrai)
Int32 commSize() const override
Retourne le nombre total de process utilisés.
bool isParallel() const override
Retourne true si l'exécution est parallèle.
bool isMasterIO() const override
true si l'instance est un gestionnaire maître des entrées/sorties.
IApplication * m_application
Superviseur associé
IApplication * application() const override
Retourne le gestionnaire principal.
Int32 commRank() const override
Retourne le numéro du process (compris entre 0 et nbProcess()-1)
IThreadMng * threadMng() const override
Gestionnaire de thread.
Int32 traceRank() const override
Rang de cette instance pour les traces.
Structure contenant les informations pour créer un service.
Communicateur pour l'échange de message.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-