#include <CollectiveCommunicationSingleNonBlocking.h>
|
void | setMPIType () |
| defines a MPI datatype which can be used to transfer a CollectiveCommunication object More...
|
|
static void | add (valType *invec, valType *inoutvec, int *, MPI_Datatype *dtype) |
| method used by MPI to add variables of this type More...
|
|
static void | max (valType *invec, valType *inoutvec, int *, MPI_Datatype *dtype) |
|
static void | min (valType *invec, valType *inoutvec, int *, MPI_Datatype *dtype) |
|
std::vector< MPI_Datatype > | _types |
| Vector of the corresponding MPI types for the values stored in _values.
|
|
MPI_Datatype | _agglomeratedType |
|
MPI_Comm | _communicator |
| Communicator to be used by the communication commands.
|
|
std::vector< valType > | _values |
| Vector to store the values which shall be communicated.
|
|
std::vector< valType >::const_iterator | _getter |
| Iterator to extract the values which were communicated.
|
|
CollectiveCommunicationSingleNonBlocking extends the CollectiveCommunication by an implementation of nonblocking collectives.
- Author
- Steffen Seckler
◆ CollectiveCommunicationSingleNonBlocking() [1/2]
CollectiveCommunicationSingleNonBlocking::CollectiveCommunicationSingleNonBlocking |
( |
| ) |
|
|
default |
◆ CollectiveCommunicationSingleNonBlocking() [2/2]
Copy constructor is deleted, as copying the vector _tempValues will change memory addresses used in the mpi communication!
◆ ~CollectiveCommunicationSingleNonBlocking()
CollectiveCommunicationSingleNonBlocking::~CollectiveCommunicationSingleNonBlocking |
( |
| ) |
|
|
inlineoverride |
◆ allreduceSumAllowPrevious()
void CollectiveCommunicationSingleNonBlocking::allreduceSumAllowPrevious |
( |
| ) |
|
|
inlineoverridevirtual |
Performs an all-reduce (sum), however values of previous iterations are permitted. By allowing values from previous iterations, overlapping communication is possible. One possible use case for this function is the reduction of slowly changing variables, e.g. the temperature.
Reimplemented from CollectiveCommunication.
◆ finalize()
void CollectiveCommunicationSingleNonBlocking::finalize |
( |
| ) |
|
|
inlineoverridevirtual |
◆ init()
void CollectiveCommunicationSingleNonBlocking::init |
( |
MPI_Comm |
communicator, |
|
|
int |
numValues, |
|
|
int |
key = 0 |
|
) |
| |
|
inlineoverridevirtual |
allocate memory for the values to be sent, initialize counters
- Parameters
-
numValues | number of values that shall be communicated |
Reimplemented from CollectiveCommunication.
◆ operator=()
Copy assignment operator is deleted, as copying the vector _tempValues will change memory addresses used in the mpi communication!
The documentation for this class was generated from the following file: