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

Classe abstraite du superviseur de parallélisme. Plus de détails...

#include <arcane/core/IParallelSuperMng.h>

+ Graphe d'héritage de Arcane::IParallelSuperMng:
+ Graphe de collaboration de Arcane::IParallelSuperMng:

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 IApplicationapplication () const =0
 Retourne le gestionnaire principal.
 
virtual IThreadMngthreadMng () 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 voidgetMPICommunicator ()=0
 Adresse du communicateur MPI associé à ce gestionnaire.
 
virtual Parallel::Communicator communicator () const =0
 Communicateur MPI associé à ce gestionnaire.
 
virtual Ref< IParallelMnginternalCreateWorldParallelMng (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
 

Description détaillée

Classe abstraite du superviseur de parallélisme.

Définition à la ligne 40 du fichier IParallelSuperMng.h.

Documentation des définitions de type membres

◆ eReduceType

◆ Request

Documentation des constructeurs et destructeur

◆ ~IParallelSuperMng()

virtual Arcane::IParallelSuperMng::~IParallelSuperMng ( )
inlinevirtual

Libère les ressources.

Définition à la ligne 49 du fichier IParallelSuperMng.h.

Documentation des fonctions membres

◆ application()

virtual IApplication * Arcane::IParallelSuperMng::application ( ) const
pure virtual

◆ barrier()

virtual void Arcane::IParallelSuperMng::barrier ( )
pure virtual

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.

◆ broadcast()

virtual void Arcane::IParallelSuperMng::broadcast ( ByteArrayView  send_buf,
Integer  process_id 
)
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().

◆ build()

virtual void Arcane::IParallelSuperMng::build ( )
pure virtual

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émenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MpiSequentialParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, Arcane::MessagePassing::MpiSharedMemoryParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.

◆ commRank()

virtual Int32 Arcane::IParallelSuperMng::commRank ( ) const
pure virtual

◆ commSize()

virtual Int32 Arcane::IParallelSuperMng::commSize ( ) const
pure virtual

◆ communicator()

virtual Parallel::Communicator Arcane::IParallelSuperMng::communicator ( ) const
pure virtual

◆ getMPICommunicator()

virtual void * Arcane::IParallelSuperMng::getMPICommunicator ( )
pure virtual

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.

◆ initialize()

virtual void Arcane::IParallelSuperMng::initialize ( )
pure virtual

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émenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.

◆ internalCreateWorldParallelMng()

virtual Ref< IParallelMng > Arcane::IParallelSuperMng::internalCreateWorldParallelMng ( Int32  local_rank)
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.

◆ isMasterIO()

virtual bool Arcane::IParallelSuperMng::isMasterIO ( ) const
pure virtual

◆ isParallel()

virtual bool Arcane::IParallelSuperMng::isParallel ( ) const
pure virtual

◆ masterIORank()

virtual Int32 Arcane::IParallelSuperMng::masterIORank ( ) const
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.

◆ nbLocalSubDomain()

virtual Int32 Arcane::IParallelSuperMng::nbLocalSubDomain ( )
pure virtual

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

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

Implémenté dans Arcane::SequentialParallelSuperMng, Arcane::MpiParallelSuperMng, Arcane::MessagePassing::HybridParallelSuperMng, et Arcane::MessagePassing::SharedMemoryParallelSuperMng.

◆ threadMng()

virtual IThreadMng * Arcane::IParallelSuperMng::threadMng ( ) const
pure virtual

◆ traceRank()

virtual Int32 Arcane::IParallelSuperMng::traceRank ( ) const
pure virtual

◆ tryAbort()

virtual void Arcane::IParallelSuperMng::tryAbort ( )
pure virtual

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.


La documentation de cette classe a été générée à partir du fichier suivant :