Classe abstraite du superviseur de parallélisme. Plus de détails...
#include <arcane/core/IParallelSuperMng.h>
Types publics | |
typedef Parallel::Request | Request |
typedef Parallel::eReduceType | eReduceType |
Fonctions membres publiques | |
virtual | ~IParallelSuperMng () |
Libère les ressources. | |
virtual void | build ()=0 |
Construit les membres l'instance. | |
virtual void | initialize ()=0 |
Initialise l'instance. | |
virtual IApplication * | application () const =0 |
Retourne le gestionnaire principal. | |
virtual IThreadMng * | threadMng () const =0 |
Gestionnaire de thread. | |
virtual bool | isParallel () const =0 |
Retourne true si l'exécution est parallèle. | |
virtual Int32 | commRank () const =0 |
Retourne le numéro du process (compris entre 0 et nbProcess()-1) | |
virtual Int32 | commSize () const =0 |
Retourne le nombre total de process utilisés. | |
virtual Int32 | traceRank () const =0 |
Rang de cette instance pour les traces. | |
virtual void * | getMPICommunicator ()=0 |
Adresse du communicateur MPI associé à ce gestionnaire. | |
virtual Parallel::Communicator | communicator () const =0 |
Communicateur MPI associé à ce gestionnaire. | |
virtual Ref< IParallelMng > | internalCreateWorldParallelMng (Int32 local_rank)=0 |
Créé un gestionnaire de parallélisme pour l'ensemble des coeurs alloués. | |
virtual Int32 | nbLocalSubDomain ()=0 |
Nombre de sous-domaines à créér localement. | |
virtual void | tryAbort ()=0 |
Tente de faire un abort. | |
virtual bool | isMasterIO () const =0 |
true si l'instance est un gestionnaire maître des entrées/sorties. | |
virtual Int32 | masterIORank () const =0 |
Rang de l'instance gérant les entrées/sorties (pour laquelle isMasterIO() est vrai) | |
virtual void | barrier ()=0 |
Gestionnaire de parallèlisme pour l'ensemble des ressources allouées. | |
opérations de broadcast | |
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 |
Classe abstraite du superviseur de parallélisme.
Définition à la ligne 40 du fichier IParallelSuperMng.h.
Définition à la ligne 45 du fichier IParallelSuperMng.h.
Définition à la ligne 44 du fichier IParallelSuperMng.h.
|
inlinevirtual |
Libère les ressources.
Définition à la ligne 49 du fichier IParallelSuperMng.h.
|
pure virtual |
Retourne le gestionnaire principal.
Implémenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.
Gestionnaire de parallèlisme pour l'ensemble des ressources allouées.
Effectue une barière
Implémenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.
|
pure virtual |
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.
Implémenté dans Arcane::ParallelSuperMngDispatcher.
Référencé par Arcane::FlexLMMng::checkLicense(), Arcane::FlexLMMng::featureInfo(), et Arcane::FlexLMMng::getLicense().
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émenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MpiSequentialParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, Arcane::MessagePassing::MpiSharedMemoryParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.
|
pure virtual |
Retourne le numéro du process (compris entre 0 et nbProcess()-1)
Implémenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.
|
pure virtual |
Retourne le nombre total de process utilisés.
Implémenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.
|
pure virtual |
Communicateur MPI associé à ce gestionnaire.
Implémenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.
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émenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.
Initialise l'instance.
L'instance n'est pas utilisable tant que cette méthode n'a pas été appelée.
Implémenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.
|
pure virtual |
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émenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.
true si l'instance est un gestionnaire maître des entrées/sorties.
Implémenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.
Retourne true si l'exécution est parallèle.
Implémenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.
Référencé par Arcane::Application::build().
|
pure virtual |
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émenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.
|
pure virtual |
Nombre de sous-domaines à créér localement.
Implémenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.
|
pure virtual |
Gestionnaire de thread.
Implémenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.
|
pure virtual |
Rang de cette instance pour les traces.
Implémenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.
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émenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.