Superviseur du parallélisme utilisant les threads. Plus de détails...
#include <arcane/parallel/thread/SharedMemoryParallelSuperMng.h>
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. | |
IApplication * | application () const override |
Retourne le gestionnaire principal. | |
IThreadMng * | threadMng () 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. | |
void * | getMPICommunicator () override |
Adresse du communicateur MPI associé à ce gestionnaire. | |
Parallel::Communicator | communicator () const override |
Communicateur MPI associé à ce gestionnaire. | |
Ref< IParallelMng > | internalCreateWorldParallelMng (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 | |
IApplication * | m_application |
Gestionnaire principal. | |
Parallel::IStat * | m_stat |
bool | m_is_parallel |
Statistiques. | |
SharedMemoryParallelMngContainer * | m_container = nullptr |
Ref< IParallelMngContainerFactory > | m_builder_factory |
Ref< IParallelMngContainer > | m_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 |
Superviseur du parallélisme utilisant les threads.
Définition à la ligne 38 du fichier SharedMemoryParallelSuperMng.h.
|
explicit |
Définition à la ligne 199 du fichier SharedMemoryParallelSuperMng.cc.
Arcane::MessagePassing::SharedMemoryParallelSuperMng::SharedMemoryParallelSuperMng | ( | const ServiceBuildInfo & | sbi, |
Parallel::Communicator | communicator, | ||
bool | has_mpi_init | ||
) |
Définition à la ligne 208 du fichier SharedMemoryParallelSuperMng.cc.
|
override |
Définition à la ligne 223 du fichier SharedMemoryParallelSuperMng.cc.
|
inlineoverridevirtual |
Retourne le gestionnaire principal.
Implémente Arcane::IParallelSuperMng.
Définition à la ligne 51 du fichier SharedMemoryParallelSuperMng.h.
|
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.
|
override |
Définition à la ligne 308 du fichier SharedMemoryParallelSuperMng.cc.
|
override |
Définition à la ligne 318 du fichier SharedMemoryParallelSuperMng.cc.
|
override |
Définition à la ligne 328 du fichier SharedMemoryParallelSuperMng.cc.
|
override |
Définition à la ligne 338 du fichier SharedMemoryParallelSuperMng.cc.
|
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().
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().
|
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.
|
inlineoverridevirtual |
Retourne le nombre total de process utilisés.
Implémente Arcane::IParallelSuperMng.
Définition à la ligne 55 du fichier SharedMemoryParallelSuperMng.h.
|
inlineoverridevirtual |
Communicateur MPI associé à ce gestionnaire.
Implémente Arcane::IParallelSuperMng.
Définition à la ligne 58 du fichier SharedMemoryParallelSuperMng.h.
Référencé par build().
|
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().
|
overridevirtual |
Initialise l'instance.
L'instance n'est pas utilisable tant que cette méthode n'a pas été appelée.
Implémente Arcane::IParallelSuperMng.
Définition à la ligne 232 du fichier SharedMemoryParallelSuperMng.cc.
|
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().
|
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.
|
inlineoverridevirtual |
Retourne true si l'exécution est parallèle.
Implémente Arcane::IParallelSuperMng.
Définition à la ligne 53 du fichier SharedMemoryParallelSuperMng.h.
|
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.
|
overridevirtual |
Nombre de sous-domaines à créér localement.
Implémente Arcane::IParallelSuperMng.
Définition à la ligne 357 du fichier SharedMemoryParallelSuperMng.cc.
Référencé par internalCreateWorldParallelMng().
|
overridevirtual |
Gestionnaire de thread.
Implémente Arcane::IParallelSuperMng.
Définition à la ligne 348 du fichier SharedMemoryParallelSuperMng.cc.
|
inlineoverridevirtual |
Rang de cette instance pour les traces.
Implémente Arcane::IParallelSuperMng.
Définition à la ligne 56 du fichier SharedMemoryParallelSuperMng.h.
|
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().
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().
Ref<IParallelMngContainerFactory> Arcane::MessagePassing::SharedMemoryParallelSuperMng::m_builder_factory |
Définition à la ligne 79 du fichier SharedMemoryParallelSuperMng.h.
Parallel::Communicator Arcane::MessagePassing::SharedMemoryParallelSuperMng::m_communicator |
Définition à la ligne 81 du fichier SharedMemoryParallelSuperMng.h.
SharedMemoryParallelMngContainer* Arcane::MessagePassing::SharedMemoryParallelSuperMng::m_container = nullptr |
Définition à la ligne 78 du fichier SharedMemoryParallelSuperMng.h.
Définition à la ligne 82 du fichier SharedMemoryParallelSuperMng.h.
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().
Ref<IParallelMngContainer> Arcane::MessagePassing::SharedMemoryParallelSuperMng::m_main_builder |
Définition à la ligne 80 du fichier SharedMemoryParallelSuperMng.h.
Parallel::IStat* Arcane::MessagePassing::SharedMemoryParallelSuperMng::m_stat |
Définition à la ligne 76 du fichier SharedMemoryParallelSuperMng.h.