Parallelism manager using MPI. More...
#include <arcane/parallel/mpi/MpiParallelNonBlockingCollective.h>
Public Member Functions | |
| MpiParallelNonBlockingCollective (ITraceMng *tm, IParallelMng *pm, MpiAdapter *adapter) | |
| virtual void | build () |
| Constructs the instance. | |
| virtual Request | barrier () |
| Performs a barrier. | |
| virtual bool | hasValidReduceForDerivedType () const |
| Indicates if the implementation allows reductions on derived types. | |
| Public Member Functions inherited from Arcane::ParallelNonBlockingCollectiveDispatcher | |
| ParallelNonBlockingCollectiveDispatcher (IParallelMng *pm) | |
| IParallelMng * | parallelMng () const override |
| Associated parallelism manager. | |
| ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE (m_char, char) ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_unsigned_char | |
| unsigned char | ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE (m_signed_char, signed char) ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_short |
| unsigned char short | ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE (m_unsigned_short, unsigned short) ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_int |
| unsigned char short int | ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE (m_unsigned_int, unsigned int) ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_long |
| unsigned char short int long | ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE (m_unsigned_long, unsigned long) ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_long_long |
| unsigned char short int long long long | ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE (m_unsigned_long_long, unsigned long long) ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_float |
| unsigned char short int long long long float | ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE (m_double, double) ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_long_double |
| unsigned char short int long long long float long double | ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE (m_real2, Real2) ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_real3 |
| unsigned char short int long long long float long double Real3 | ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE (m_real2x2, Real2x2) ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_real3x3 |
| unsigned char short int long long long float long double Real3 Real3x3 virtual ARCANE_PARALLEL_NONBLOCKINGCOLLECTIVE_DISPATCH_PROTOTYPE(m_hpreal, HPReal) public IParallelNonBlockingCollectiveDispatchT< signed char > * | dispatcher (signed char *) |
| virtual IParallelNonBlockingCollectiveDispatchT< unsigned char > * | dispatcher (unsigned char *) |
| virtual IParallelNonBlockingCollectiveDispatchT< short > * | dispatcher (short *) |
| virtual IParallelNonBlockingCollectiveDispatchT< unsigned short > * | dispatcher (unsigned short *) |
| virtual IParallelNonBlockingCollectiveDispatchT< int > * | dispatcher (int *) |
| virtual IParallelNonBlockingCollectiveDispatchT< unsigned int > * | dispatcher (unsigned int *) |
| virtual IParallelNonBlockingCollectiveDispatchT< long > * | dispatcher (long *) |
| virtual IParallelNonBlockingCollectiveDispatchT< unsigned long > * | dispatcher (unsigned long *) |
| virtual IParallelNonBlockingCollectiveDispatchT< long long > * | dispatcher (long long *) |
| virtual IParallelNonBlockingCollectiveDispatchT< unsigned long long > * | dispatcher (unsigned long long *) |
| virtual IParallelNonBlockingCollectiveDispatchT< float > * | dispatcher (float *) |
| virtual IParallelNonBlockingCollectiveDispatchT< double > * | dispatcher (double *) |
| virtual IParallelNonBlockingCollectiveDispatchT< long double > * | dispatcher (long double *) |
| virtual IParallelNonBlockingCollectiveDispatchT< Real2 > * | dispatcher (Real2 *) |
| virtual IParallelNonBlockingCollectiveDispatchT< Real3 > * | dispatcher (Real3 *) |
| virtual IParallelNonBlockingCollectiveDispatchT< Real2x2 > * | dispatcher (Real2x2 *) |
| virtual IParallelNonBlockingCollectiveDispatchT< Real3x3 > * | dispatcher (Real3x3 *) |
| virtual IParallelNonBlockingCollectiveDispatchT< HPReal > * | dispatcher (HPReal *) |
| Public Member Functions inherited from Arcane::IParallelNonBlockingCollective | |
| virtual | ~IParallelNonBlockingCollective ()=default |
| Releases resources. | |
| virtual Request | allGather (ConstArrayView< char > send_buf, ArrayView< char > recv_buf)=0 |
| Performs a gather on all processors. This is a collective operation. The array send_buf must have the same size, denoted n, for all processors and the array recv_buf must have a size equal to the number of processors multiplied by 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 |
| virtual Request | gather (ConstArrayView< char > send_buf, ArrayView< char > recv_buf, Integer rank)=0 |
| Performs a gather on one processor. This is a collective operation. The array send_buf must have the same size, denoted n, for all processors and the array recv_buf for processor rank must have a size equal to the number of processors multiplied by n. This array recv_buf is unused for ranks other than 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 |
| virtual Request | allReduce (eReduceType rt, ConstArrayView< char > send_buf, ArrayView< char > recv_buf)=0 |
| Performs the reduction of type rt on the array send_buf and stores the result in 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 |
| 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 |
| Performs a broadcast of a memory region. | |
| 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 |
| 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 |
Private Attributes | |
| ITraceMng * | m_trace_mng |
| MpiAdapter * | m_adapter |
Parallelism manager using MPI.
Definition at line 34 of file MpiParallelNonBlockingCollective.h.
| Arcane::MpiParallelNonBlockingCollective::MpiParallelNonBlockingCollective | ( | ITraceMng * | tm, |
| IParallelMng * | pm, | ||
| MpiAdapter * | adapter ) |
Definition at line 29 of file MpiParallelNonBlockingCollective.cc.
|
virtual |
Definition at line 40 of file MpiParallelNonBlockingCollective.cc.
|
virtual |
Performs a barrier.
Implements Arcane::IParallelNonBlockingCollective.
Definition at line 79 of file MpiParallelNonBlockingCollective.cc.
|
virtual |
Constructs the instance.
Implements Arcane::IParallelNonBlockingCollective.
Definition at line 48 of file MpiParallelNonBlockingCollective.cc.
|
virtual |
Indicates if the implementation allows reductions on derived types.
OpenMPI versions up to and including 1.8.4 seem to have a bug (which results in a crash) with non-blocking reductions when the reduction operator is redefined. This is the case with derived types such as Real3, Real2, ...
Implements Arcane::IParallelNonBlockingCollective.
Definition at line 88 of file MpiParallelNonBlockingCollective.cc.
|
private |
Definition at line 51 of file MpiParallelNonBlockingCollective.h.
|
private |
Definition at line 50 of file MpiParallelNonBlockingCollective.h.