Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::IParallelNonBlockingCollective Class Referenceabstract

Interface for non-blocking collective parallel operations. More...

#include <arcane/core/IParallelNonBlockingCollective.h>

Inheritance diagram for Arcane::IParallelNonBlockingCollective:
Collaboration diagram for Arcane::IParallelNonBlockingCollective:

Public Types

typedef Parallel::Request Request
typedef Parallel::eReduceType eReduceType

Public Member Functions

virtual ~IParallelNonBlockingCollective ()=default
 Releases resources.
virtual void build ()=0
 Constructs the instance.
virtual IParallelMngparallelMng () const =0
 Associated parallelism manager.
allGather
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
gather
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
Array reduction operations
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
Broadcast operations

Sends an array of values to all subdomains.

This operation sends the value array send_buf to all subdomains. The array used is the one whose rank (commRank) is rank. All participating subdomains must call this method with the same parameter rank and have an array send_buf containing the same number of elements.

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
allToAll variable

Performs a variable allToAll.

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
Synchronization and asynchronous operations
virtual Request barrier ()=0
 Performs a barrier.
virtual bool hasValidReduceForDerivedType () const =0
 Indicates if the implementation allows reductions on derived types.

Detailed Description

Interface for non-blocking collective parallel operations.

Definition at line 52 of file IParallelNonBlockingCollective.h.

Member Typedef Documentation

◆ eReduceType

◆ Request

typedef Parallel::Request Arcane::IParallelNonBlockingCollective::Request

Definition at line 60 of file IParallelNonBlockingCollective.h.

Member Function Documentation

◆ allToAll()

virtual Request Arcane::IParallelNonBlockingCollective::allToAll ( ConstArrayView< char > send_buf,
ArrayView< char > recv_buf,
Integer count )
pure virtual

Performs a broadcast of a memory region.

The processor performing the broadcast is given by \id. The array sent is then given by bytes. The receiving processors receive the array in bytes. This array is allocated automatically; receiving processors do not need to know the number of bytes to be sent.

References allToAll().

Referenced by allToAll().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ barrier()

virtual Request Arcane::IParallelNonBlockingCollective::barrier ( )
pure virtual

Performs a barrier.

Implemented in Arcane::MpiParallelNonBlockingCollective.

◆ build()

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

Constructs the instance.

Implemented in Arcane::MpiParallelNonBlockingCollective.

◆ hasValidReduceForDerivedType()

virtual bool Arcane::IParallelNonBlockingCollective::hasValidReduceForDerivedType ( ) const
pure 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, ...

Implemented in Arcane::MpiParallelNonBlockingCollective.

◆ parallelMng()

virtual IParallelMng * Arcane::IParallelNonBlockingCollective::parallelMng ( ) const
pure virtual

Associated parallelism manager.

Implemented in Arcane::ParallelNonBlockingCollectiveDispatcher.


The documentation for this class was generated from the following file: