Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::MessagePassing::SharedMemoryParallelSuperMng

Superviseur du parallélisme utilisant les threads. Plus de détails...

#include <arcane/parallel/thread/SharedMemoryParallelSuperMng.h>

+ Graphe d'héritage de Arcane::MessagePassing::SharedMemoryParallelSuperMng:
+ Graphe de collaboration de Arcane::MessagePassing::SharedMemoryParallelSuperMng:

Fonctions membres publiques

 SharedMemoryParallelSuperMng (const ServiceBuildInfo &sbi)
 
 SharedMemoryParallelSuperMng (const ServiceBuildInfo &sbi, Parallel::Communicator communicator, bool has_mpi_init)
 
void initialize () override
 Initialise l'instance.
 
void build () override
 Construit les membres l'instance.
 
IApplicationapplication () const override
 Retourne le gestionnaire principal.
 
IThreadMngthreadMng () const override
 Gestionnaire de thread.
 
bool isParallel () const override
 Retourne true si l'exécution est parallèle.
 
Int32 commRank () const override
 Retourne le numéro du process (compris entre 0 et nbProcess()-1)
 
Int32 commSize () const override
 Retourne le nombre total de process utilisés.
 
Int32 traceRank () const override
 Rang de cette instance pour les traces.
 
voidgetMPICommunicator () override
 Adresse du communicateur MPI associé à ce gestionnaire.
 
Parallel::Communicator communicator () const override
 Communicateur MPI associé à ce gestionnaire.
 
Ref< IParallelMnginternalCreateWorldParallelMng (Int32 local_rank) override
 Créé un gestionnaire de parallélisme pour l'ensemble des coeurs alloués.
 
void tryAbort () override
 Tente de faire un abort.
 
bool isMasterIO () const override
 true si l'instance est un gestionnaire maître des entrées/sorties.
 
Int32 masterIORank () const override
 Rang de l'instance gérant les entrées/sorties (pour laquelle isMasterIO() est vrai)
 
Int32 nbLocalSubDomain () override
 Nombre de sous-domaines à créér localement.
 
void barrier () override
 Gestionnaire de parallèlisme pour l'ensemble des ressources allouées.
 
void broadcast (ByteArrayView send_buf, Int32 rank) override
 
void broadcast (Int32ArrayView send_buf, Int32 rank) override
 
void broadcast (Int64ArrayView send_buf, Int32 rank) override
 
void broadcast (RealArrayView send_buf, Int32 rank) override
 
- Fonctions membres publiques hérités de Arcane::IParallelSuperMng
virtual ~IParallelSuperMng ()
 Libère les ressources.
 
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 send_buf sur tous les processus. Le tableau utilisé est celui du processus dont l'identifiant (processId()) est process_id. Tous les processus doivent appelés cette méthode avec le même paramètre process_id et avoir un tableau send_buf contenant le même nombre d'éléments.
 
virtual void broadcast (Int32ArrayView send_buf, Integer process_id)=0
 
virtual void broadcast (Int64ArrayView send_buf, Integer process_id)=0
 
virtual void broadcast (RealArrayView send_buf, Integer process_id)=0
 

Attributs publics

IApplicationm_application
 Gestionnaire principal.
 
Parallel::IStatm_stat
 
bool m_is_parallel
 Statistiques.
 
SharedMemoryParallelMngContainerm_container = nullptr
 
Ref< IParallelMngContainerFactorym_builder_factory
 
Ref< IParallelMngContainerm_main_builder
 
Parallel::Communicator m_communicator
 
bool m_has_mpi_init = false
 

Membres hérités additionnels

- Types publics hérités de Arcane::IParallelSuperMng
typedef Parallel::Request Request
 
typedef Parallel::eReduceType eReduceType
 

Description détaillée

Superviseur du parallélisme utilisant les threads.

Définition à la ligne 38 du fichier SharedMemoryParallelSuperMng.h.

Documentation des constructeurs et destructeur

◆ SharedMemoryParallelSuperMng() [1/2]

Arcane::MessagePassing::SharedMemoryParallelSuperMng::SharedMemoryParallelSuperMng ( const ServiceBuildInfo sbi)
explicit

Définition à la ligne 199 du fichier SharedMemoryParallelSuperMng.cc.

◆ SharedMemoryParallelSuperMng() [2/2]

Arcane::MessagePassing::SharedMemoryParallelSuperMng::SharedMemoryParallelSuperMng ( const ServiceBuildInfo sbi,
Parallel::Communicator  communicator,
bool  has_mpi_init 
)

Définition à la ligne 208 du fichier SharedMemoryParallelSuperMng.cc.

◆ ~SharedMemoryParallelSuperMng()

Arcane::MessagePassing::SharedMemoryParallelSuperMng::~SharedMemoryParallelSuperMng ( )
override

Définition à la ligne 223 du fichier SharedMemoryParallelSuperMng.cc.

Documentation des fonctions membres

◆ application()

IApplication * Arcane::MessagePassing::SharedMemoryParallelSuperMng::application ( ) const
inlineoverridevirtual

Retourne le gestionnaire principal.

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 51 du fichier SharedMemoryParallelSuperMng.h.

◆ barrier()

void Arcane::MessagePassing::SharedMemoryParallelSuperMng::barrier ( )
inlineoverridevirtual

Gestionnaire de parallèlisme pour l'ensemble des ressources allouées.

Effectue une barière

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 64 du fichier SharedMemoryParallelSuperMng.h.

◆ broadcast() [1/4]

void Arcane::MessagePassing::SharedMemoryParallelSuperMng::broadcast ( ByteArrayView  send_buf,
Int32  rank 
)
override

Définition à la ligne 308 du fichier SharedMemoryParallelSuperMng.cc.

◆ broadcast() [2/4]

void Arcane::MessagePassing::SharedMemoryParallelSuperMng::broadcast ( Int32ArrayView  send_buf,
Int32  rank 
)
override

Définition à la ligne 318 du fichier SharedMemoryParallelSuperMng.cc.

◆ broadcast() [3/4]

void Arcane::MessagePassing::SharedMemoryParallelSuperMng::broadcast ( Int64ArrayView  send_buf,
Int32  rank 
)
override

Définition à la ligne 328 du fichier SharedMemoryParallelSuperMng.cc.

◆ broadcast() [4/4]

void Arcane::MessagePassing::SharedMemoryParallelSuperMng::broadcast ( RealArrayView  send_buf,
Int32  rank 
)
override

Définition à la ligne 338 du fichier SharedMemoryParallelSuperMng.cc.

◆ build()

void Arcane::MessagePassing::SharedMemoryParallelSuperMng::build ( )
overridevirtual

Construit les membres l'instance.

L'instance n'est pas utilisable tant que cette méthode n'a pas été appelée. Cette méthode doit être appelée avant initialize().

Avertissement
Cette méthode ne doit être appelée qu'une seule fois.

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 240 du fichier SharedMemoryParallelSuperMng.cc.

Références Arcane::IApplication::applicationBuildInfo(), ARCANE_CHECK_POINTER, ARCANE_FATAL, Arcane::arcaneHasThread(), communicator(), getMPICommunicator(), Arccore::TraceAccessor::info(), m_application, m_is_parallel, et Arcane::IBase::traceMng().

Référencé par Arcane::MessagePassing::MpiSharedMemoryParallelSuperMng::build().

◆ commRank()

Int32 Arcane::MessagePassing::SharedMemoryParallelSuperMng::commRank ( ) const
inlineoverridevirtual

Retourne le numéro du process (compris entre 0 et nbProcess()-1)

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 54 du fichier SharedMemoryParallelSuperMng.h.

◆ commSize()

Int32 Arcane::MessagePassing::SharedMemoryParallelSuperMng::commSize ( ) const
inlineoverridevirtual

Retourne le nombre total de process utilisés.

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 55 du fichier SharedMemoryParallelSuperMng.h.

◆ communicator()

Parallel::Communicator Arcane::MessagePassing::SharedMemoryParallelSuperMng::communicator ( ) const
inlineoverridevirtual

Communicateur MPI associé à ce gestionnaire.

Voir également
IParallelMng::communicator()

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 58 du fichier SharedMemoryParallelSuperMng.h.

Référencé par build().

◆ getMPICommunicator()

void * Arcane::MessagePassing::SharedMemoryParallelSuperMng::getMPICommunicator ( )
inlineoverridevirtual

Adresse du communicateur MPI associé à ce gestionnaire.

Le communicateur n'est valide que si on utilise MPI. Sinon, l'adresse retournée est 0. La valeur retournée est de type (MPI_Comm*).

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 57 du fichier SharedMemoryParallelSuperMng.h.

Référencé par build().

◆ initialize()

void Arcane::MessagePassing::SharedMemoryParallelSuperMng::initialize ( )
overridevirtual

Initialise l'instance.

L'instance n'est pas utilisable tant que cette méthode n'a pas été appelée.

Avertissement
Cette méthode ne doit être appelée qu'une seule fois.

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 232 du fichier SharedMemoryParallelSuperMng.cc.

◆ internalCreateWorldParallelMng()

Ref< IParallelMng > Arcane::MessagePassing::SharedMemoryParallelSuperMng::internalCreateWorldParallelMng ( Int32  local_rank)
overridevirtual

Créé un gestionnaire de parallélisme pour l'ensemble des coeurs alloués.

Cette opération est collective.

Cette méthode ne doit être appelée qu'une seule fois lors de l'initialisation.

local_rank est le rang local de l'appelant dans la liste des rangs. En mode pure MPI, ce rang est toujours 0 car il n'y a qu'un seul thread. En mode Thread ou Thread/MPI, il s'agit du rang du thread utilisé lors de la création.

Le gestionnaire retourné reste la propriété de cette instance et ne doit pas être détruit.

A usage interne uniquement.

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 273 du fichier SharedMemoryParallelSuperMng.cc.

Références Arcane::MessagePassing::SharedMemoryParallelMngContainer::_createParallelMng(), ARCANE_THROW, Arcane::IApplication::createAndInitializeTraceMng(), m_application, nbLocalSubDomain(), et Arcane::IBase::traceMng().

◆ isMasterIO()

bool Arcane::MessagePassing::SharedMemoryParallelSuperMng::isMasterIO ( ) const
inlineoverridevirtual

true si l'instance est un gestionnaire maître des entrées/sorties.

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 61 du fichier SharedMemoryParallelSuperMng.h.

◆ isParallel()

bool Arcane::MessagePassing::SharedMemoryParallelSuperMng::isParallel ( ) const
inlineoverridevirtual

Retourne true si l'exécution est parallèle.

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 53 du fichier SharedMemoryParallelSuperMng.h.

◆ masterIORank()

Int32 Arcane::MessagePassing::SharedMemoryParallelSuperMng::masterIORank ( ) const
inlineoverridevirtual

Rang de l'instance gérant les entrées/sorties (pour laquelle isMasterIO() est vrai)

Dans l'implémentation actuelle, il s'agit toujours du processeur de rang 0.

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 62 du fichier SharedMemoryParallelSuperMng.h.

◆ nbLocalSubDomain()

Int32 Arcane::MessagePassing::SharedMemoryParallelSuperMng::nbLocalSubDomain ( )
overridevirtual

Nombre de sous-domaines à créér localement.

  • 1 si séquentiel.
  • 1 si MPI pur
  • n si THREAD ou THREAD/MPI

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 357 du fichier SharedMemoryParallelSuperMng.cc.

Référencé par internalCreateWorldParallelMng().

◆ threadMng()

IThreadMng * Arcane::MessagePassing::SharedMemoryParallelSuperMng::threadMng ( ) const
overridevirtual

Gestionnaire de thread.

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 348 du fichier SharedMemoryParallelSuperMng.cc.

◆ traceRank()

Int32 Arcane::MessagePassing::SharedMemoryParallelSuperMng::traceRank ( ) const
inlineoverridevirtual

Rang de cette instance pour les traces.

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 56 du fichier SharedMemoryParallelSuperMng.h.

◆ tryAbort()

void Arcane::MessagePassing::SharedMemoryParallelSuperMng::tryAbort ( )
overridevirtual

Tente de faire un abort.

Cette méthode est appelée lorsqu'une exception a été généré et que le cas en cours d'exécution doit s'interrompre. Elle permet d'effectuer les opérations de nettoyage du gestionnaire si besoin est.

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 298 du fichier SharedMemoryParallelSuperMng.cc.

Références m_application, et Arcane::IBase::traceMng().

Documentation des données membres

◆ m_application

IApplication* Arcane::MessagePassing::SharedMemoryParallelSuperMng::m_application

Gestionnaire principal.

Définition à la ligne 75 du fichier SharedMemoryParallelSuperMng.h.

Référencé par build(), internalCreateWorldParallelMng(), et tryAbort().

◆ m_builder_factory

Ref<IParallelMngContainerFactory> Arcane::MessagePassing::SharedMemoryParallelSuperMng::m_builder_factory

Définition à la ligne 79 du fichier SharedMemoryParallelSuperMng.h.

◆ m_communicator

Parallel::Communicator Arcane::MessagePassing::SharedMemoryParallelSuperMng::m_communicator

Définition à la ligne 81 du fichier SharedMemoryParallelSuperMng.h.

◆ m_container

SharedMemoryParallelMngContainer* Arcane::MessagePassing::SharedMemoryParallelSuperMng::m_container = nullptr

Définition à la ligne 78 du fichier SharedMemoryParallelSuperMng.h.

◆ m_has_mpi_init

bool Arcane::MessagePassing::SharedMemoryParallelSuperMng::m_has_mpi_init = false

Définition à la ligne 82 du fichier SharedMemoryParallelSuperMng.h.

◆ m_is_parallel

bool Arcane::MessagePassing::SharedMemoryParallelSuperMng::m_is_parallel

Statistiques.

true si on est en mode parallèle

Définition à la ligne 77 du fichier SharedMemoryParallelSuperMng.h.

Référencé par build().

◆ m_main_builder

Ref<IParallelMngContainer> Arcane::MessagePassing::SharedMemoryParallelSuperMng::m_main_builder

Définition à la ligne 80 du fichier SharedMemoryParallelSuperMng.h.

◆ m_stat

Parallel::IStat* Arcane::MessagePassing::SharedMemoryParallelSuperMng::m_stat

Définition à la ligne 76 du fichier SharedMemoryParallelSuperMng.h.


La documentation de cette classe a été générée à partir des fichiers suivants :