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

Superviseur du parallélisme utilisant MPI. Plus de détails...

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

Fonctions membres publiques

 MpiParallelSuperMng (const ServiceBuildInfo &sbi)
 
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.
 
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.
 
- 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.
 

Fonctions membres publiques statiques

static void initMPI (IApplication *app)
 

Attributs publics

IApplicationm_application
 Gestionnaire principal.
 
IThreadMngm_thread_mng
 
Parallel::IStatm_stat
 
bool m_is_parallel
 Statistiques.
 
Int32 m_rank
 Rang MPI dans le communicateur global de ce processus.
 
Int32 m_nb_rank
 Nombre de processus MPI dans le communicateur global.
 
Int32 m_nb_local_sub_domain
 Nombre de sous-domaines locaux.
 
MPI_Comm m_mpi_main_communicator
 Communicateur MPI.
 
MP::Communicator m_main_communicator
 Communicateur MPI.
 
MpiErrorHandler m_error_handler
 
MpiAdapterm_adapter
 
MpiDatatypeListm_datatype_list
 

Fonctions membres privées statiques

static void _ErrorHandler (MPI_Comm *, int *,...)
 

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::ParallelSuperMngDispatcher
void _setDispatchers (IParallelDispatchT< Byte > *b, IParallelDispatchT< Int32 > *i32, IParallelDispatchT< Int64 > *i64, IParallelDispatchT< Real > *r)
 
void _finalize ()
 

Description détaillée

Superviseur du parallélisme utilisant MPI.

Définition à la ligne 48 du fichier MpiParallelSuperMng.cc.

Documentation des constructeurs et destructeur

◆ MpiParallelSuperMng()

Arcane::MpiParallelSuperMng::MpiParallelSuperMng ( const ServiceBuildInfo sbi)
explicit

Définition à la ligne 102 du fichier MpiParallelSuperMng.cc.

◆ ~MpiParallelSuperMng()

Arcane::MpiParallelSuperMng::~MpiParallelSuperMng ( )
override

Définition à la ligne 123 du fichier MpiParallelSuperMng.cc.

Documentation des fonctions membres

◆ _ErrorHandler()

void Arcane::MpiParallelSuperMng::_ErrorHandler ( MPI_Comm comm,
int error_code,
  ... 
)
staticprivate

Définition à la ligne 198 du fichier MpiParallelSuperMng.cc.

◆ application()

IApplication * Arcane::MpiParallelSuperMng::application ( ) const
inlineoverridevirtual

Retourne le gestionnaire principal.

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 59 du fichier MpiParallelSuperMng.cc.

Références m_application.

◆ barrier()

void Arcane::MpiParallelSuperMng::barrier ( )
overridevirtual

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

Effectue une barière

Implémente Arcane::IParallelSuperMng.

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

Références m_main_communicator.

◆ build()

void Arcane::MpiParallelSuperMng::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 219 du fichier MpiParallelSuperMng.cc.

Références Arcane::arcaneIsAcceleratorAwareMPI(), Arccore::TraceAccessor::info(), m_application, m_is_parallel, m_main_communicator, m_mpi_main_communicator, m_nb_rank, m_rank, et Arcane::IBase::traceMng().

◆ commRank()

Int32 Arcane::MpiParallelSuperMng::commRank ( ) const
inlineoverridevirtual

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

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 62 du fichier MpiParallelSuperMng.cc.

Références m_rank.

Référencé par isMasterIO().

◆ commSize()

Int32 Arcane::MpiParallelSuperMng::commSize ( ) const
inlineoverridevirtual

Retourne le nombre total de process utilisés.

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 63 du fichier MpiParallelSuperMng.cc.

Références m_nb_rank.

◆ communicator()

Parallel::Communicator Arcane::MpiParallelSuperMng::communicator ( ) const
inlineoverridevirtual

Communicateur MPI associé à ce gestionnaire.

Voir également
IParallelMng::communicator()

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 66 du fichier MpiParallelSuperMng.cc.

Références m_main_communicator.

◆ getMPICommunicator()

void * Arcane::MpiParallelSuperMng::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 65 du fichier MpiParallelSuperMng.cc.

Références m_mpi_main_communicator.

◆ initialize()

void Arcane::MpiParallelSuperMng::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 151 du fichier MpiParallelSuperMng.cc.

◆ initMPI()

void Arcane::MpiParallelSuperMng::initMPI ( IApplication app)
static

Définition à la ligne 159 du fichier MpiParallelSuperMng.cc.

◆ internalCreateWorldParallelMng()

Ref< IParallelMng > Arcane::MpiParallelSuperMng::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 262 du fichier MpiParallelSuperMng.cc.

Références ARCANE_THROW, Arcane::IParallelMng::build(), Arccore::TraceAccessor::debug(), m_application, m_main_communicator, et Arcane::IBase::traceMng().

◆ isMasterIO()

bool Arcane::MpiParallelSuperMng::isMasterIO ( ) const
inlineoverridevirtual

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

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 69 du fichier MpiParallelSuperMng.cc.

Références commRank().

◆ isParallel()

bool Arcane::MpiParallelSuperMng::isParallel ( ) const
inlineoverridevirtual

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

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 61 du fichier MpiParallelSuperMng.cc.

Références m_is_parallel.

◆ masterIORank()

Integer Arcane::MpiParallelSuperMng::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 70 du fichier MpiParallelSuperMng.cc.

◆ nbLocalSubDomain()

Integer Arcane::MpiParallelSuperMng::nbLocalSubDomain ( )
inlineoverridevirtual

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 71 du fichier MpiParallelSuperMng.cc.

Références m_nb_local_sub_domain.

◆ threadMng()

IThreadMng * Arcane::MpiParallelSuperMng::threadMng ( ) const
inlineoverridevirtual

Gestionnaire de thread.

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 60 du fichier MpiParallelSuperMng.cc.

◆ traceRank()

Int32 Arcane::MpiParallelSuperMng::traceRank ( ) const
inlineoverridevirtual

Rang de cette instance pour les traces.

Implémente Arcane::IParallelSuperMng.

Définition à la ligne 64 du fichier MpiParallelSuperMng.cc.

Références m_rank.

◆ tryAbort()

void Arcane::MpiParallelSuperMng::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 297 du fichier MpiParallelSuperMng.cc.

Références Arccore::TraceAccessor::info(), m_application, m_main_communicator, m_rank, et Arcane::IBase::traceMng().

Documentation des données membres

◆ m_adapter

MpiAdapter* Arcane::MpiParallelSuperMng::m_adapter

Définition à la ligne 90 du fichier MpiParallelSuperMng.cc.

◆ m_application

IApplication* Arcane::MpiParallelSuperMng::m_application

Gestionnaire principal.

Définition à la ligne 80 du fichier MpiParallelSuperMng.cc.

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

◆ m_datatype_list

MpiDatatypeList* Arcane::MpiParallelSuperMng::m_datatype_list

Définition à la ligne 91 du fichier MpiParallelSuperMng.cc.

◆ m_error_handler

MpiErrorHandler Arcane::MpiParallelSuperMng::m_error_handler

Définition à la ligne 89 du fichier MpiParallelSuperMng.cc.

◆ m_is_parallel

bool Arcane::MpiParallelSuperMng::m_is_parallel

Statistiques.

true si on est en mode parallèle

Définition à la ligne 83 du fichier MpiParallelSuperMng.cc.

Référencé par build(), et isParallel().

◆ m_main_communicator

MP::Communicator Arcane::MpiParallelSuperMng::m_main_communicator

Communicateur MPI.

Définition à la ligne 88 du fichier MpiParallelSuperMng.cc.

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

◆ m_mpi_main_communicator

MPI_Comm Arcane::MpiParallelSuperMng::m_mpi_main_communicator

Communicateur MPI.

Définition à la ligne 87 du fichier MpiParallelSuperMng.cc.

Référencé par build(), et getMPICommunicator().

◆ m_nb_local_sub_domain

Int32 Arcane::MpiParallelSuperMng::m_nb_local_sub_domain

Nombre de sous-domaines locaux.

Définition à la ligne 86 du fichier MpiParallelSuperMng.cc.

Référencé par nbLocalSubDomain().

◆ m_nb_rank

Int32 Arcane::MpiParallelSuperMng::m_nb_rank

Nombre de processus MPI dans le communicateur global.

Définition à la ligne 85 du fichier MpiParallelSuperMng.cc.

Référencé par build(), et commSize().

◆ m_rank

Int32 Arcane::MpiParallelSuperMng::m_rank

Rang MPI dans le communicateur global de ce processus.

Définition à la ligne 84 du fichier MpiParallelSuperMng.cc.

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

◆ m_stat

Parallel::IStat* Arcane::MpiParallelSuperMng::m_stat

Définition à la ligne 82 du fichier MpiParallelSuperMng.cc.

◆ m_thread_mng

IThreadMng* Arcane::MpiParallelSuperMng::m_thread_mng

Définition à la ligne 81 du fichier MpiParallelSuperMng.cc.


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