Arcane  v4.1.7.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ParallelMngInternal.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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/* ParallelMngInternal.h (C) 2000-2026 */
9/* */
10/* Implémentation de la partie interne à Arcane de IParallelMng. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_INTERNAL_PARALLELMNGINTERNAL_H
13#define ARCANE_CORE_INTERNAL_PARALLELMNGINTERNAL_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18#include "arcane/core/internal/IParallelMngInternal.h"
19
20#include "arcane/accelerator/core/Runner.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35
40class ARCANE_CORE_EXPORT ParallelMngInternal
42{
43 public:
44
45 explicit ParallelMngInternal(ParallelMngDispatcher* pm);
46
47 ~ParallelMngInternal() override = default;
48
49 public:
50
51 Runner runner() const override;
52 RunQueue queue() const override;
53 bool isAcceleratorAware() const override;
55 void setDefaultRunner(const Runner& runner) override;
56 Int32 masterParallelIORank() const override;
57 Int32 nbSendersToMasterParallelIO() const override;
58 void initializeWindowCreator() override;
59 bool isMachineShMemWinAvailable() override;
64 void machineBarrier() override;
65
66 private:
67
68 ParallelMngDispatcher* m_parallel_mng = nullptr;
69 Runner m_runner;
70 RunQueue m_queue;
71 bool m_is_accelerator_aware_disabled = false;
72};
73
74/*---------------------------------------------------------------------------*/
75/*---------------------------------------------------------------------------*/
76
77} // namespace Arcane
78
79/*---------------------------------------------------------------------------*/
80/*---------------------------------------------------------------------------*/
81
82#endif
Déclarations des types généraux de Arcane.
Gestionnaire d'exécution pour accélérateur.
Vue constante d'un tableau de type T.
Partie interne de IParallelMng.
Redirige la gestion des messages des sous-domaines suivant le type de l'argument.
Int32 masterParallelIORank() const override
MemoryAllocationOptions machineShMemWinMemoryAllocator() override
Méthode permettant de récupérer un allocateur en mémoire partagée.
void initializeWindowCreator() override
Méthode permettant d'initialiser le windowCreator spécifique à l'implémentation.
void machineBarrier() override
Méthode permettant de faire une barrière pour les sous-domaines du noeud de calcul.
Int32 nbSendersToMasterParallelIO() const override
Ref< MessagePassing::IContigMachineShMemWinBaseInternal > createContigMachineShMemWinBase(Int64 sizeof_segment, Int32 sizeof_type) override
Méthode permettant de créer une fenêtre mémoire sur le noeud.
ConstArrayView< Int32 > machineRanks() override
Méthode permettant de récupérer les rangs des sous-domaines du noeud de calcul.
RunQueue queue() const override
File par défaut pour les messages. Peut être nul.
Ref< MessagePassing::IMachineShMemWinBaseInternal > createMachineShMemWinBase(Int64 sizeof_segment, Int32 sizeof_type) override
Méthode permettant de créer une fenêtre mémoire dynamique sur le noeud.
Ref< IParallelMng > createSubParallelMngRef(Int32 color, Int32 key) override
Créé un sous IParallelMng de manière similaire à MPI_Comm_split.
bool isAcceleratorAware() const override
Indique si l'implémentation gère les accélérateurs.
Runner runner() const override
Runner par défaut. Peut être nul.
bool isMachineShMemWinAvailable() override
Méthode permettant de savoir si le mode mémoire partagée est supporté.
Référence à une instance.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int64_t Int64
Type entier signé sur 64 bits.
std::int32_t Int32
Type entier signé sur 32 bits.