Interface des opérations parallèles collectives non bloquantes. Plus de détails...
#include <arcane/core/IParallelNonBlockingCollective.h>
Types publics | |
typedef Parallel::Request | Request |
typedef Parallel::eReduceType | eReduceType |
Fonctions membres publiques | |
virtual | ~IParallelNonBlockingCollective () |
Libère les ressources. | |
virtual void | build ()=0 |
Construit l'instance. | |
virtual IParallelMng * | parallelMng () const =0 |
Gestionnaire de parallélisme associé. | |
allGather | |
virtual Request | 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. Le tableau send_buf doit avoir la même taille, notée n, pour tous les processeurs et le tableau recv_buf doit avoir une taille égale au nombre de processeurs multiplié par n. | |
virtual Request | allGather (ConstArrayView< unsigned char > send_buf, ArrayView< unsigned char > recv_buf)=0 |
virtual Request | allGather (ConstArrayView< signed char > send_buf, ArrayView< signed char > recv_buf)=0 |
virtual Request | allGather (ConstArrayView< int > send_buf, ArrayView< int > recv_buf)=0 |
virtual Request | allGather (ConstArrayView< unsigned int > send_buf, ArrayView< unsigned int > recv_buf)=0 |
virtual Request | allGather (ConstArrayView< short > send_buf, ArrayView< short > recv_buf)=0 |
virtual Request | allGather (ConstArrayView< unsigned short > send_buf, ArrayView< unsigned short > recv_buf)=0 |
virtual Request | allGather (ConstArrayView< long > send_buf, ArrayView< long > recv_buf)=0 |
virtual Request | allGather (ConstArrayView< unsigned long > send_buf, ArrayView< unsigned long > recv_buf)=0 |
virtual Request | allGather (ConstArrayView< long long > send_buf, ArrayView< long long > recv_buf)=0 |
virtual Request | allGather (ConstArrayView< unsigned long long > send_buf, ArrayView< unsigned long long > recv_buf)=0 |
virtual Request | allGather (ConstArrayView< float > send_buf, ArrayView< float > recv_buf)=0 |
virtual Request | allGather (ConstArrayView< double > send_buf, ArrayView< double > recv_buf)=0 |
virtual Request | allGather (ConstArrayView< long double > send_buf, ArrayView< long double > recv_buf)=0 |
virtual Request | allGather (ConstArrayView< Real2 > send_buf, ArrayView< Real2 > recv_buf)=0 |
virtual Request | allGather (ConstArrayView< Real3 > send_buf, ArrayView< Real3 > recv_buf)=0 |
virtual Request | allGather (ConstArrayView< Real2x2 > send_buf, ArrayView< Real2x2 > recv_buf)=0 |
virtual Request | allGather (ConstArrayView< Real3x3 > send_buf, ArrayView< Real3x3 > recv_buf)=0 |
virtual Request | allGather (ConstArrayView< HPReal > send_buf, ArrayView< HPReal > recv_buf)=0 |
gather | |
virtual Request | gather (ConstArrayView< char > send_buf, ArrayView< char > recv_buf, Integer rank)=0 |
Effectue un regroupement sur un processeurs. Il s'agit d'une opération collective. Le tableau send_buf doit avoir la même taille, notée n, pour tous les processeurs et le tableau recv_buf pour le processeur rank doit avoir une taille égale au nombre de processeurs multiplié par n. Ce tableau recv_buf est inutilisé pour les autres rangs que rank. | |
virtual Request | gather (ConstArrayView< unsigned char > send_buf, ArrayView< unsigned char > recv_buf, Integer rank)=0 |
virtual Request | gather (ConstArrayView< signed char > send_buf, ArrayView< signed char > recv_buf, Integer rank)=0 |
virtual Request | gather (ConstArrayView< int > send_buf, ArrayView< int > recv_buf, Integer rank)=0 |
virtual Request | gather (ConstArrayView< unsigned int > send_buf, ArrayView< unsigned int > recv_buf, Integer rank)=0 |
virtual Request | gather (ConstArrayView< short > send_buf, ArrayView< short > recv_buf, Integer rank)=0 |
virtual Request | gather (ConstArrayView< unsigned short > send_buf, ArrayView< unsigned short > recv_buf, Integer rank)=0 |
virtual Request | gather (ConstArrayView< long > send_buf, ArrayView< long > recv_buf, Integer rank)=0 |
virtual Request | gather (ConstArrayView< unsigned long > send_buf, ArrayView< unsigned long > recv_buf, Integer rank)=0 |
virtual Request | gather (ConstArrayView< long long > send_buf, ArrayView< long long > recv_buf, Integer rank)=0 |
virtual Request | gather (ConstArrayView< unsigned long long > send_buf, ArrayView< unsigned long long > recv_buf, Integer rank)=0 |
virtual Request | gather (ConstArrayView< float > send_buf, ArrayView< float > recv_buf, Integer rank)=0 |
virtual Request | gather (ConstArrayView< double > send_buf, ArrayView< double > recv_buf, Integer rank)=0 |
virtual Request | gather (ConstArrayView< long double > send_buf, ArrayView< long double > recv_buf, Integer rank)=0 |
virtual Request | gather (ConstArrayView< Real2 > send_buf, ArrayView< Real2 > recv_buf, Integer rank)=0 |
virtual Request | gather (ConstArrayView< Real3 > send_buf, ArrayView< Real3 > recv_buf, Integer rank)=0 |
virtual Request | gather (ConstArrayView< Real2x2 > send_buf, ArrayView< Real2x2 > recv_buf, Integer rank)=0 |
virtual Request | gather (ConstArrayView< Real3x3 > send_buf, ArrayView< Real3x3 > recv_buf, Integer rank)=0 |
virtual Request | gather (ConstArrayView< HPReal > send_buf, ArrayView< HPReal > recv_buf, Integer rank)=0 |
opérations de réduction sur un tableau | |
virtual Request | allReduce (eReduceType rt, ConstArrayView< char > send_buf, ArrayView< char > recv_buf)=0 |
Effectue la réduction de type rt sur le tableau send_buf et stoque le résultat dans recv_buf. | |
virtual Request | allReduce (eReduceType rt, ConstArrayView< signed char > send_buf, ArrayView< signed char > recv_buf)=0 |
virtual Request | allReduce (eReduceType rt, ConstArrayView< unsigned char > send_buf, ArrayView< unsigned char > recv_buf)=0 |
virtual Request | allReduce (eReduceType rt, ConstArrayView< short > send_buf, ArrayView< short > recv_buf)=0 |
virtual Request | allReduce (eReduceType rt, ConstArrayView< unsigned short > send_buf, ArrayView< unsigned short > recv_buf)=0 |
virtual Request | allReduce (eReduceType rt, ConstArrayView< int > send_buf, ArrayView< int > recv_buf)=0 |
virtual Request | allReduce (eReduceType rt, ConstArrayView< unsigned int > send_buf, ArrayView< unsigned int > recv_buf)=0 |
virtual Request | allReduce (eReduceType rt, ConstArrayView< long > send_buf, ArrayView< long > recv_buf)=0 |
virtual Request | allReduce (eReduceType rt, ConstArrayView< unsigned long > send_buf, ArrayView< unsigned long > recv_buf)=0 |
virtual Request | allReduce (eReduceType rt, ConstArrayView< long long > send_buf, ArrayView< long long > recv_buf)=0 |
virtual Request | allReduce (eReduceType rt, ConstArrayView< unsigned long long > send_buf, ArrayView< unsigned long long > recv_buf)=0 |
virtual Request | allReduce (eReduceType rt, ConstArrayView< float > send_buf, ArrayView< float > recv_buf)=0 |
virtual Request | allReduce (eReduceType rt, ConstArrayView< double > send_buf, ArrayView< double > recv_buf)=0 |
virtual Request | allReduce (eReduceType rt, ConstArrayView< long double > send_buf, ArrayView< long double > recv_buf)=0 |
virtual Request | allReduce (eReduceType rt, ConstArrayView< Real2 > send_buf, ArrayView< Real2 > recv_buf)=0 |
virtual Request | allReduce (eReduceType rt, ConstArrayView< Real3 > send_buf, ArrayView< Real3 > recv_buf)=0 |
virtual Request | allReduce (eReduceType rt, ConstArrayView< Real2x2 > send_buf, ArrayView< Real2x2 > recv_buf)=0 |
virtual Request | allReduce (eReduceType rt, ConstArrayView< Real3x3 > send_buf, ArrayView< Real3x3 > recv_buf)=0 |
virtual Request | allReduce (eReduceType rt, ConstArrayView< HPReal > send_buf, ArrayView< HPReal > recv_buf)=0 |
opérations de broadcast | |
Envoie un tableau de valeurs sur tous les sous-domaines. Cette opération envoie le tableau de valeur send_buf sur tous les sous-domaines. Le tableau utilisé est celui dont le rang (commRank) est rank. Tous les sous-domaines participants doivent appelés cette méthode avec le même paramètre rank et avoir un tableau send_buf contenant le même nombre d'éléments. | |
virtual Request | broadcast (ArrayView< char > send_buf, Integer rank)=0 |
virtual Request | broadcast (ArrayView< signed char > send_buf, Integer rank)=0 |
virtual Request | broadcast (ArrayView< unsigned char > send_buf, Integer rank)=0 |
virtual Request | broadcast (ArrayView< short > send_buf, Integer rank)=0 |
virtual Request | broadcast (ArrayView< unsigned short > send_buf, Integer rank)=0 |
virtual Request | broadcast (ArrayView< int > send_buf, Integer rank)=0 |
virtual Request | broadcast (ArrayView< unsigned int > send_buf, Integer rank)=0 |
virtual Request | broadcast (ArrayView< long > send_buf, Integer rank)=0 |
virtual Request | broadcast (ArrayView< unsigned long > send_buf, Integer rank)=0 |
virtual Request | broadcast (ArrayView< long long > send_buf, Integer rank)=0 |
virtual Request | broadcast (ArrayView< unsigned long long > send_buf, Integer rank)=0 |
virtual Request | broadcast (ArrayView< float > send_buf, Integer rank)=0 |
virtual Request | broadcast (ArrayView< double > send_buf, Integer rank)=0 |
virtual Request | broadcast (ArrayView< long double > send_buf, Integer rank)=0 |
virtual Request | broadcast (ArrayView< Real2 > send_buf, Integer rank)=0 |
virtual Request | broadcast (ArrayView< Real3 > send_buf, Integer rank)=0 |
virtual Request | broadcast (ArrayView< Real2x2 > send_buf, Integer rank)=0 |
virtual Request | broadcast (ArrayView< Real3x3 > send_buf, Integer rank)=0 |
virtual Request | broadcast (ArrayView< HPReal > send_buf, Integer rank)=0 |
virtual Request | allToAll (ConstArrayView< char > send_buf, ArrayView< char > recv_buf, Integer count)=0 |
Effectue un broadcast d'une zone mémoire. | |
virtual Request | allToAll (ConstArrayView< signed char > send_buf, ArrayView< signed char > recv_buf, Integer count)=0 |
virtual Request | allToAll (ConstArrayView< unsigned char > send_buf, ArrayView< unsigned char > recv_buf, Integer count)=0 |
virtual Request | allToAll (ConstArrayView< int > send_buf, ArrayView< int > recv_buf, Integer count)=0 |
virtual Request | allToAll (ConstArrayView< unsigned int > send_buf, ArrayView< unsigned int > recv_buf, Integer count)=0 |
virtual Request | allToAll (ConstArrayView< short > send_buf, ArrayView< short > recv_buf, Integer count)=0 |
virtual Request | allToAll (ConstArrayView< unsigned short > send_buf, ArrayView< unsigned short > recv_buf, Integer count)=0 |
virtual Request | allToAll (ConstArrayView< long > send_buf, ArrayView< long > recv_buf, Integer count)=0 |
virtual Request | allToAll (ConstArrayView< unsigned long > send_buf, ArrayView< unsigned long > recv_buf, Integer count)=0 |
virtual Request | allToAll (ConstArrayView< long long > send_buf, ArrayView< long long > recv_buf, Integer count)=0 |
virtual Request | allToAll (ConstArrayView< unsigned long long > send_buf, ArrayView< unsigned long long > recv_buf, Integer count)=0 |
virtual Request | allToAll (ConstArrayView< float > send_buf, ArrayView< float > recv_buf, Integer count)=0 |
virtual Request | allToAll (ConstArrayView< double > send_buf, ArrayView< double > recv_buf, Integer count)=0 |
virtual Request | allToAll (ConstArrayView< long double > send_buf, ArrayView< long double > recv_buf, Integer count)=0 |
virtual Request | allToAll (ConstArrayView< Real2 > send_buf, ArrayView< Real2 > recv_buf, Integer count)=0 |
virtual Request | allToAll (ConstArrayView< Real3 > send_buf, ArrayView< Real3 > recv_buf, Integer count)=0 |
virtual Request | allToAll (ConstArrayView< Real2x2 > send_buf, ArrayView< Real2x2 > recv_buf, Integer count)=0 |
virtual Request | allToAll (ConstArrayView< Real3x3 > send_buf, ArrayView< Real3x3 > recv_buf, Integer count)=0 |
virtual Request | allToAll (ConstArrayView< HPReal > send_buf, ArrayView< HPReal > recv_buf, Integer count)=0 |
allToAll variable | |
Effectue un allToAll variable | |
virtual Request | allToAllVariable (ConstArrayView< char > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< char > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
virtual Request | allToAllVariable (ConstArrayView< signed char > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< signed char > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
virtual Request | allToAllVariable (ConstArrayView< unsigned char > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< unsigned char > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
virtual Request | allToAllVariable (ConstArrayView< int > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< int > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
virtual Request | allToAllVariable (ConstArrayView< unsigned int > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< unsigned int > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
virtual Request | allToAllVariable (ConstArrayView< short > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< short > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
virtual Request | allToAllVariable (ConstArrayView< unsigned short > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< unsigned short > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
virtual Request | allToAllVariable (ConstArrayView< long > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< long > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
virtual Request | allToAllVariable (ConstArrayView< unsigned long > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< unsigned long > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
virtual Request | allToAllVariable (ConstArrayView< long long > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< long long > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
virtual Request | allToAllVariable (ConstArrayView< unsigned long long > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< unsigned long long > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
virtual Request | allToAllVariable (ConstArrayView< float > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< float > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
virtual Request | allToAllVariable (ConstArrayView< double > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< double > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
virtual Request | allToAllVariable (ConstArrayView< long double > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< long double > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
virtual Request | allToAllVariable (ConstArrayView< Real2 > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< Real2 > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
virtual Request | allToAllVariable (ConstArrayView< Real3 > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< Real3 > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
virtual Request | allToAllVariable (ConstArrayView< Real2x2 > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< Real2x2 > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
virtual Request | allToAllVariable (ConstArrayView< Real3x3 > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< Real3x3 > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
virtual Request | allToAllVariable (ConstArrayView< HPReal > send_buf, Int32ConstArrayView send_count, Int32ConstArrayView send_index, ArrayView< HPReal > recv_buf, Int32ConstArrayView recv_count, Int32ConstArrayView recv_index)=0 |
opérations de synchronisation et opérations asynchrones | |
virtual Request | barrier ()=0 |
Effectue une barière. | |
virtual bool | hasValidReduceForDerivedType () const =0 |
Indique si l'implémentation autorise les réductions sur les types dérivés. | |
Interface des opérations parallèles collectives non bloquantes.
Définition à la ligne 55 du fichier IParallelNonBlockingCollective.h.
Définition à la ligne 64 du fichier IParallelNonBlockingCollective.h.
Définition à la ligne 63 du fichier IParallelNonBlockingCollective.h.
|
inlinevirtual |
Libère les ressources.
Définition à la ligne 59 du fichier IParallelNonBlockingCollective.h.
|
pure virtual |
Effectue un broadcast d'une zone mémoire.
Le processeur qui effectue le broacast est donnée par \id. Le tableau envoyé est alors donnée par bytes. Les processeurs réceptionnent le tableau dans bytes. Ce tableau est alloué automatiquement, les processeurs réceptionnant n'ont pas besoin de connaitre le nombre d'octets devant être envoyés.
|
pure virtual |
Indique si l'implémentation autorise les réductions sur les types dérivés.
Les version de OpenMPI jusqu'à la version 1.8.4 incluses semblent avoir un bug (qui se traduit par un plantage) avec les réductions non bloquantes lorsque l'opérateur de réduction est redéfini. C'est le cas avec les types dérivés tels que Real3, Real2, ...
|
pure virtual |
Gestionnaire de parallélisme associé.
Implémenté dans Arcane::ParallelNonBlockingCollectiveDispatcher.