Superviseur du parallélisme en mode séquentiel. Plus de détails...
#include <arcane/impl/SequentialParallelSuperMng.h>
Fonctions membres publiques | |
SequentialParallelSuperMng (const ServiceBuildInfo &sbi) | |
SequentialParallelSuperMng (const ServiceBuildInfo &sbi, Parallel::Communicator comm) | |
void | build () override |
Construction de niveau build du service. | |
void | initialize () override |
Initialise 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. | |
MP::Communicator | communicator () const override |
Communicateur MPI associé à ce gestionnaire. | |
bool | isMasterIO () const override |
true si l'instance est un gestionnaire maître des entrées/sorties. | |
Integer | masterIORank () const override |
Rang de l'instance gérant les entrées/sorties (pour laquelle isMasterIO() est vrai) | |
Integer | nbLocalSubDomain () override |
Nombre de sous-domaines à créér localement. | |
void | barrier () override |
Gestionnaire de parallèlisme pour l'ensemble des ressources allouées. | |
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. | |
Fonctions membres publiques hérités de Arcane::AbstractService | |
virtual | ~AbstractService () |
Destructeur. | |
virtual IServiceInfo * | serviceInfo () const |
Accès aux informations du service. | |
virtual IBase * | serviceParent () const |
Accès à l'interface de base des principaux objets Arcane. | |
virtual IService * | serviceInterface () |
Retourne l'interface bas niveau IService du service. | |
Fonctions membres publiques hérités de Arccore::TraceAccessor | |
TraceAccessor (ITraceMng *m) | |
Construit un accesseur via le gestionnaire de trace m. | |
TraceAccessor (const TraceAccessor &rhs) | |
Constructeur par recopie. | |
TraceAccessor & | operator= (const TraceAccessor &rhs) |
Opérateur de recopie. | |
virtual | ~TraceAccessor () |
Libère les ressources. | |
ITraceMng * | traceMng () const |
Gestionnaire de trace. | |
TraceMessage | info () const |
Flot pour un message d'information. | |
TraceMessage | pinfo () const |
Flot pour un message d'information en parallèle. | |
TraceMessage | info (char category) const |
Flot pour un message d'information d'une catégorie donnée. | |
TraceMessage | pinfo (char category) const |
Flot pour un message d'information parallèle d'une catégorie donnée. | |
TraceMessage | info (bool v) const |
Flot pour un message d'information. | |
TraceMessage | warning () const |
Flot pour un message d'avertissement. | |
TraceMessage | pwarning () const |
TraceMessage | error () const |
Flot pour un message d'erreur. | |
TraceMessage | perror () const |
TraceMessage | log () const |
Flot pour un message de log. | |
TraceMessage | plog () const |
Flot pour un message de log. | |
TraceMessage | logdate () const |
Flot pour un message de log précédé de la date. | |
TraceMessage | fatal () const |
Flot pour un message d'erreur fatale. | |
TraceMessage | pfatal () const |
Flot pour un message d'erreur fatale en parallèle. | |
TraceMessageDbg | debug (Trace::eDebugLevel=Trace::Medium) const |
Flot pour un message de debug. | |
Trace::eDebugLevel | configDbgLevel () const |
Niveau debug du fichier de configuration. | |
TraceMessage | info (Int32 verbose_level) const |
Flot pour un message d'information d'un niveau donné | |
TraceMessage | linfo () const |
Flot pour un message d'information avec le niveau d'information local à cette instance. | |
TraceMessage | linfo (Int32 relative_level) const |
Flot pour un message d'information avec le niveau d'information local à cette instance. | |
void | fatalMessage (const StandaloneTraceMessage &o) const |
Fonctions membres publiques hérités de Arcane::IService | |
virtual | ~IService () |
Libère les ressources. | |
Fonctions membres publiques hérités de Arcane::ParallelSuperMngDispatcher | |
virtual void | allGather (ByteConstArrayView send_buf, ByteArrayView recv_buf) |
virtual void | allGather (Int32ConstArrayView send_buf, Int32ArrayView recv_buf) |
virtual void | allGather (Int64ConstArrayView send_buf, Int64ArrayView recv_buf) |
virtual void | allGather (RealConstArrayView send_buf, RealArrayView recv_buf) |
virtual Int32 | reduce (eReduceType rt, Int32 v) |
virtual Int64 | reduce (eReduceType rt, Int64 v) |
virtual Real | reduce (eReduceType rt, Real v) |
virtual void | reduce (eReduceType rt, Int32ArrayView v) |
virtual void | reduce (eReduceType rt, Int64ArrayView v) |
virtual void | reduce (eReduceType rt, RealArrayView v) |
virtual void | broadcast (ByteArrayView send_buf, Integer id) |
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 id) |
virtual void | broadcast (Int64ArrayView send_buf, Integer id) |
virtual void | broadcast (RealArrayView send_buf, Integer id) |
virtual void | send (ByteConstArrayView values, Integer id) |
virtual void | send (Int32ConstArrayView values, Integer id) |
virtual void | send (Int64ConstArrayView values, Integer id) |
virtual void | send (RealConstArrayView values, Integer id) |
virtual void | recv (ByteArrayView values, Integer id) |
virtual void | recv (Int32ArrayView values, Integer id) |
virtual void | recv (Int64ArrayView values, Integer id) |
virtual void | recv (RealArrayView values, Integer id) |
virtual Request | send (ByteConstArrayView values, Integer id, bool is_blocked) |
virtual Request | send (Int32ConstArrayView values, Integer id, bool is_blocked) |
virtual Request | send (Int64ConstArrayView values, Integer id, bool is_blocked) |
virtual Request | send (RealConstArrayView values, Integer id, bool is_blocked) |
virtual Request | recv (ByteArrayView values, Integer id, bool is_blocked) |
virtual Request | recv (Int32ArrayView values, Integer id, bool is_blocked) |
virtual Request | recv (Int64ArrayView values, Integer id, bool is_blocked) |
virtual Request | recv (RealArrayView values, Integer id, bool is_blocked) |
virtual void | sendRecv (ByteConstArrayView send_buf, ByteArrayView recv_buf, Integer id) |
virtual void | sendRecv (Int32ConstArrayView send_buf, Int32ArrayView recv_buf, Integer id) |
virtual void | sendRecv (Int64ConstArrayView send_buf, Int64ArrayView recv_buf, Integer id) |
virtual void | sendRecv (RealConstArrayView send_buf, RealArrayView recv_buf, Integer id) |
virtual void | allToAll (ByteConstArrayView send_buf, ByteArrayView recv_buf, Integer count) |
virtual void | allToAll (Int32ConstArrayView send_buf, Int32ArrayView recv_buf, Integer count) |
virtual void | allToAll (Int64ConstArrayView send_buf, Int64ArrayView recv_buf, Integer count) |
virtual void | allToAll (RealConstArrayView send_buf, RealArrayView recv_buf, Integer count) |
virtual Int32 | scan (eReduceType rt, Int32 v) |
virtual Int64 | scan (eReduceType rt, Int64 v) |
virtual Real | scan (eReduceType rt, Real v) |
virtual void | scan (eReduceType rt, Int32ArrayView v) |
virtual void | scan (eReduceType rt, Int64ArrayView v) |
virtual void | scan (eReduceType rt, RealArrayView v) |
Fonctions membres publiques hérités de Arcane::IParallelSuperMng | |
virtual | ~IParallelSuperMng () |
Libère les ressources. | |
Attributs privés | |
IApplication * | m_application |
Superviseur associé | |
IThreadMng * | m_thread_mng |
ITimerMng * | m_timer_mng |
ScopedPtrT< ITimerMng > | m_owned_timer_mng |
MP::Communicator | m_communicator |
Membres hérités additionnels | |
Types publics hérités de Arcane::IParallelSuperMng | |
typedef Parallel::Request | Request |
typedef Parallel::eReduceType | eReduceType |
Fonctions membres protégées hérités de Arcane::AbstractService | |
AbstractService (const ServiceBuildInfo &) | |
Constructeur à partir d'un ServiceBuildInfo. | |
Fonctions membres protégées hérités de Arccore::TraceAccessor | |
void | _setLocalVerboseLevel (Int32 v) |
Int32 | _localVerboseLevel () const |
Fonctions membres protégées hérités de Arcane::IService | |
IService () | |
Constructeur. | |
Fonctions membres protégées hérités de Arcane::ParallelSuperMngDispatcher | |
void | _setDispatchers (IParallelDispatchT< Byte > *b, IParallelDispatchT< Int32 > *i32, IParallelDispatchT< Int64 > *i64, IParallelDispatchT< Real > *r) |
void | _finalize () |
Superviseur du parallélisme en mode séquentiel.
Dans ce mode, le parallélisme n'est pas supporté. Ce gestionnaire ne fait donc rien.
Définition à la ligne 37 du fichier SequentialParallelSuperMng.h.
|
explicit |
Définition à la ligne 725 du fichier SequentialParallelMng.cc.
Arcane::SequentialParallelSuperMng::SequentialParallelSuperMng | ( | const ServiceBuildInfo & | sbi, |
Parallel::Communicator | comm | ||
) |
Définition à la ligne 738 du fichier SequentialParallelMng.cc.
|
override |
Définition à la ligne 752 du fichier SequentialParallelMng.cc.
|
inlineoverridevirtual |
Retourne le gestionnaire principal.
Implémente Arcane::IParallelSuperMng.
Définition à la ligne 50 du fichier SequentialParallelSuperMng.h.
Référencé par Arcane::MpiSequentialParallelSuperMng::build().
|
inlineoverridevirtual |
Gestionnaire de parallèlisme pour l'ensemble des ressources allouées.
Effectue une barière
Implémente Arcane::IParallelSuperMng.
Définition à la ligne 61 du fichier SequentialParallelSuperMng.h.
Construction de niveau build du service.
L'appel à build est effectué au moment de sa construction, usuellement au niveau de sa lecture dans les options en phase1.
Réimplémentée à partir de Arcane::AbstractService.
Définition à la ligne 776 du fichier SequentialParallelMng.cc.
Références Arccore::TraceAccessor::traceMng().
Référencé par Arcane::MpiSequentialParallelSuperMng::build().
|
inlineoverridevirtual |
Retourne le numéro du process (compris entre 0 et nbProcess()-1)
Implémente Arcane::IParallelSuperMng.
Définition à la ligne 53 du fichier SequentialParallelSuperMng.h.
|
inlineoverridevirtual |
Retourne le nombre total de process utilisés.
Implémente Arcane::IParallelSuperMng.
Définition à la ligne 54 du fichier SequentialParallelSuperMng.h.
|
inlineoverridevirtual |
Communicateur MPI associé à ce gestionnaire.
Implémente Arcane::IParallelSuperMng.
Définition à la ligne 57 du fichier SequentialParallelSuperMng.h.
Référencé par internalCreateWorldParallelMng().
|
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 56 du fichier SequentialParallelSuperMng.h.
|
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 761 du fichier SequentialParallelMng.cc.
Références m_application, et Arccore::TraceAccessor::traceMng().
|
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 788 du fichier SequentialParallelMng.cc.
Références ARCANE_THROW, communicator(), threadMng(), et Arccore::TraceAccessor::traceMng().
|
inlineoverridevirtual |
true si l'instance est un gestionnaire maître des entrées/sorties.
Implémente Arcane::IParallelSuperMng.
Définition à la ligne 58 du fichier SequentialParallelSuperMng.h.
|
inlineoverridevirtual |
Retourne true si l'exécution est parallèle.
Implémente Arcane::IParallelSuperMng.
Définition à la ligne 52 du fichier SequentialParallelSuperMng.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 59 du fichier SequentialParallelSuperMng.h.
|
inlineoverridevirtual |
Nombre de sous-domaines à créér localement.
Implémente Arcane::IParallelSuperMng.
Définition à la ligne 60 du fichier SequentialParallelSuperMng.h.
|
inlineoverridevirtual |
Gestionnaire de thread.
Implémente Arcane::IParallelSuperMng.
Définition à la ligne 51 du fichier SequentialParallelSuperMng.h.
Référencé par internalCreateWorldParallelMng().
|
inlineoverridevirtual |
Rang de cette instance pour les traces.
Implémente Arcane::IParallelSuperMng.
Définition à la ligne 55 du fichier SequentialParallelSuperMng.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 804 du fichier SequentialParallelMng.cc.
|
private |
Superviseur associé
Définition à la ligne 68 du fichier SequentialParallelSuperMng.h.
Référencé par initialize().
|
private |
Définition à la ligne 72 du fichier SequentialParallelSuperMng.h.
|
private |
Définition à la ligne 71 du fichier SequentialParallelSuperMng.h.
|
private |
Définition à la ligne 69 du fichier SequentialParallelSuperMng.h.
|
private |
Définition à la ligne 70 du fichier SequentialParallelSuperMng.h.