12#ifndef ARCANE_CORE_IPARALLELMNG_H
13#define ARCANE_CORE_IPARALLELMNG_H
119 virtual ARCANE_DEPRECATED_120
void* mpiCommunicator();
416 virtual unsigned char reduce(
eReduceType rt,
unsigned char v) =0;
418 virtual unsigned short reduce(
eReduceType rt,
unsigned short v) =0;
420 virtual unsigned int reduce(
eReduceType rt,
unsigned int v) =0;
422 virtual unsigned long reduce(
eReduceType rt,
unsigned long v) =0;
424 virtual unsigned long long reduce(
eReduceType rt,
unsigned long long v) =0;
452 virtual void computeMinMaxSum(
signed char val,
signed char&
min_val,
455 virtual void computeMinMaxSum(
unsigned char val,
unsigned char&
min_val,
458 virtual void computeMinMaxSum(
short val,
short&
min_val,
461 virtual void computeMinMaxSum(
unsigned short val,
unsigned short&
min_val,
464 virtual void computeMinMaxSum(
int val,
int&
min_val,
467 virtual void computeMinMaxSum(
unsigned int val,
unsigned int&
min_val,
470 virtual void computeMinMaxSum(
long val,
long&
min_val,
473 virtual void computeMinMaxSum(
unsigned long val,
unsigned long&
min_val,
476 virtual void computeMinMaxSum(
long long val,
long long&
min_val,
479 virtual void computeMinMaxSum(
unsigned long long val,
unsigned long long&
min_val,
482 virtual void computeMinMaxSum(
float val,
float&
min_val,
485 virtual void computeMinMaxSum(
double val,
double&
min_val,
488 virtual void computeMinMaxSum(
long double val,
long double&
min_val,
646 virtual void broadcastString(
String& str,Int32 rank) =0;
648 virtual void broadcastSerializer(
ISerializer* values,Int32 rank) =0;
693 virtual void sendSerializer(
ISerializer* values,Int32 rank) =0;
698 ARCCORE_DEPRECATED_2019(
"Use createSendSerializer(Int32 rank) instead")
881 ArrayView<
signed char> recv_buf,Int32 rank) =0;
883 ArrayView<
unsigned char> recv_buf,Int32 rank) =0;
885 ArrayView<
short> recv_buf,Int32 rank) =0;
887 ArrayView<
unsigned short> recv_buf,Int32 rank) =0;
891 ArrayView<
unsigned int> recv_buf,Int32 rank) =0;
895 ArrayView<
unsigned long> recv_buf,Int32 rank) =0;
897 ArrayView<
long long> recv_buf,Int32 rank) =0;
899 ArrayView<
unsigned long long> recv_buf,Int32 rank) =0;
901 ArrayView<
float> recv_buf,Int32 rank) =0;
903 ArrayView<
double> recv_buf,Int32 rank) =0;
905 ArrayView<
long double> recv_buf,Int32 rank) =0;
937 ArrayView<
unsigned long long> recv_buf,Integer count) =0;
1058 ARCCORE_DEPRECATED_2020("Use createSerializeMessageListRef()
instead")
1110 [[deprecated("
Y2021: Use
Arcane::ParallelMngUtils;:createGetVariablesValuesOperationRef()
instead")]]
1119 [[deprecated("
Y2021: Use
Arcane::ParallelMngUtils;:createTransferValuesOperationRef()
instead")]]
1137 [[deprecated("
Y2021: Use
Arcane::ParallelMngUtils;:createSynchronizerRef()
instead")]]
1146 [[deprecated("
Y2021: Use
Arcane::ParallelMngUtils;:createSynchronizerRef()
instead")]]
1181 ARCCORE_DEPRECATED_2020("Use createSubParallelMngRef()
instead")
Fichier contenant les déclarations concernant le modèle de programmation par échange de message.
#define ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS()
Macro pour déclarer les méthodes virtuelles gérant les compteurs de référence.
Déclarations des types utilisés dans Arcane.
Tableau d'items de types quelconques.
Classe implémentant un réel Haute Précision.
Opérations pour accéder aux valeurs de variables d'un autre sous-domaine.
Interface du gestionnaire des entrées sorties.
Interface d'une famille d'entités.
Echange d'informations entre processeurs.
Interface d'une fabrique de conteneur de 'IParallelMng'.
virtual Ref< IParallelMngContainer > _createParallelMngBuilder(Int32 nb_local_rank, Parallel::Communicator communicator)=0
Créé un conteneur pour nb_local_rank rangs locaux et avec comme communicateur communicator.
Interface d'un conteneur de 'IParallelMng'.
virtual Ref< IParallelMng > _createParallelMng(Int32 local_rank, ITraceMng *tm)=0
Créé le IParallelMng pour le rang local local_rank.
Partie interne de IParallelMng.
Interface d'une fabrique pour les fonctions utilitaires de IParallelMng.
Interface du gestionnaire de parallélisme pour un sous-domaine.
virtual void gatherVariable(ConstArrayView< char > send_buf, Array< char > &recv_buf, Int32 rank)=0
Effectue un regroupement sur tous les processeurs.
virtual bool isThreadImplementation() const =0
Indique si l'implémentation utilise les threads.
virtual ITraceMng * traceMng() const =0
Gestionnaire de traces.
virtual void computeMinMaxSum(char val, char &min_val, char &max_val, char &sum_val, Int32 &min_rank, Int32 &max_rank)=0
Calcule en une opération la somme, le min, le max d'une valeur.
virtual Int32 commRank() const =0
Rang de cette instance dans le communicateur.
virtual void computeMinMaxSum(ConstArrayView< char > values, ArrayView< char > min_values, ArrayView< char > max_values, ArrayView< char > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
Calcule en une opération la somme, le min, le max d'une valeur.
virtual ITimeStats * timeStats() const =0
Gestionnaire de statistiques associé (peut être nul)
virtual ~IParallelMng()=default
Libère les ressources.
virtual void broadcastMemoryBuffer(ByteArray &bytes, Int32 rank)=0
Effectue un broadcast d'une zone mémoire.
virtual void reduce(eReduceType rt, ArrayView< char > v)=0
Effectue la réduction de type rt sur le tableau v.
virtual ITimeMetricCollector * timeMetricCollector() const =0
Collecteur Arccore des statistiques temporelles (peut être nul)
virtual void allGatherVariable(ConstArrayView< char > send_buf, Array< char > &recv_buf)=0
Effectue un regroupement sur tous les processeurs.
virtual bool isMasterIO() const =0
true si l'instance est un gestionnaire maître des entrées/sorties.
virtual Int32 commSize() const =0
Nombre d'instance dans le communicateur.
virtual void scatterVariable(ConstArrayView< char > send_buf, ArrayView< char > recv_buf, Integer root)=0
Scinde un tableau sur plusieurs processeurs.
virtual bool isHybridImplementation() const =0
Indique si l'implémentation utilise le mode hybride.
virtual void allGather(ConstArrayView< char > send_buf, ArrayView< char > recv_buf)=0
Effectue un regroupement sur tous les processeurs. Il s'agit d'une opération collective....
virtual IIOMng * ioMng() const =0
Gestionnaire des entrées/sorties.
virtual IThreadMng * threadMng() const =0
Gestionnaire de threads.
virtual void build()=0
Construit l'instance.
virtual ARCANE_DEPRECATED Integer subDomainId() const final
Numéro du sous-domaine associé à ce gestionnaire.
virtual void initialize()=0
Initialise le gestionnaire du parallélisme.
virtual Parallel::Communicator communicator() const =0
Communicateur MPI associé à ce gestionnaire.
virtual ARCANE_DEPRECATED Integer nbSubDomain() const final
Nombre total de sous-domaines.
virtual IParallelMng * worldParallelMng() const =0
Gestionnaire de parallélisme sur l'ensemble des ressources allouées.
virtual void gather(ConstArrayView< char > send_buf, ArrayView< char > recv_buf, Int32 rank)=0
Effectue un regroupement sur un processeurs. Il s'agit d'une opération collective....
virtual ITimerMng * timerMng() const =0
Gestionnaire de timers.
virtual Integer masterIORank() const =0
Rang de l'instance gérant les entrées/sorties (pour laquelle isMasterIO() est vrai)
virtual bool isParallel() const =0
Retourne true si l'exécution est parallèle.
virtual void * getMPICommunicator()=0
Adresse du communicateur MPI associé à ce gestionnaire.
virtual void setTimeStats(ITimeStats *time_stats)=0
Positionne le gestionnaire de statistiques.
virtual char reduce(eReduceType rt, char v)=0
Effectue la réduction de type rt sur le réel v et retourne la valeur.
Interface des opérations parallèles collectives non bloquantes.
Informations sur la réplication des sous-domaines en parallèle.
Informations sur la topologie d'allocation des coeurs de calcul.
Interface d'un gestionnaire de thread.
Interface gérant les statistiques sur les temps d'exécution.
Interface d'un gestionnaire de timer.
Envoie de valeurs sur différents processeurs.
Interface d'un service de synchronisation de variable.
Groupe d'entités de maillage.
Vue typée sur une liste d'entités d'une connectivité.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Classe ' friend' de IParallelMng permettant d'accéder à IParallelMng::_internalUtilsFactory() const;.
Statistiques sur le parallélisme.
Classe gérant un vecteur de réel de dimension 2.
Classe gérant une matrice de réel de dimension 2x2.
Classe gérant un vecteur de réel de dimension 3.
Classe gérant une matrice de réel de dimension 3x3.
Emulation de réel en précision arbitraire.
Vue modifiable d'un tableau d'un type T.
Vue constante d'un tableau de type T.
Interface d'un sérialiseur.
Interface gérant les statistiques sur l'exécution.
Interface du gestionnaire de traces.
Communicateur pour l'échange de message.
Interface du gestionnaire des échanges de messages.
Liste de requête de messages.
Interface d'une liste de messages de sérialisation.
Interface d'un message de sérialisation entre IMessagePassingMng.
Informations sur la source d'un message.
Informations pour envoyer/recevoir un message point à point.
Référence à une instance.
Vue d'un tableau d'éléments de type T.
Chaîne de caractères unicode.
Vecteur 1D de données avec sémantique par valeur (style STL).
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eReduceType
Types des réductions supportées.