Asynchronous, some-to-some gather operation used by parallel clustering algorithms to simultaneously send members of sample sets to a set of distributed worker processes. More...
#include <multi_gather.h>
Classes | |
struct | buffer |
internal struct for buffering sends and recvs. | |
Public Member Functions | |
multi_gather (MPI_Comm _comm, int _tag=0) | |
Construct a mult_gather on a communicator. | |
template<class ObjIterator , class RankIterator > | |
void | start (ObjIterator begin_obj, ObjIterator end_obj, RankIterator begin_src, RankIterator end_src, std::vector< T > &dest, int root) |
Starts initial send and receive requests for this gather. | |
template<class RankIterator > | |
void | start (const T &obj, RankIterator begin_src, RankIterator end_src, std::vector< T > &dest, int root) |
Starts a gather with one object instead of a range of objects. | |
void | finish () |
Asynchronous, some-to-some gather operation used by parallel clustering algorithms to simultaneously send members of sample sets to a set of distributed worker processes.
T | Type of objects to be transferred by this multi_gather. Must support the following operations:
|
Definition at line 62 of file multi_gather.h.
multi_gather | ( | MPI_Comm | _comm, |
int | _tag = 0 |
||
) | [inline] |
Construct a mult_gather on a communicator.
MPI communication will use the specified tag.
Definition at line 107 of file multi_gather.h.
void finish | ( | ) | [inline] |
Definition at line 183 of file multi_gather.h.
void start | ( | ObjIterator | begin_obj, |
ObjIterator | end_obj, | ||
RankIterator | begin_src, | ||
RankIterator | end_src, | ||
std::vector< T > & | dest, | ||
int | root | ||
) | [inline] |
Starts initial send and receive requests for this gather.
Must be followed up with a call to finish().
Definition at line 114 of file multi_gather.h.
void start | ( | const T & | obj, |
RankIterator | begin_src, | ||
RankIterator | end_src, | ||
std::vector< T > & | dest, | ||
int | root | ||
) | [inline] |
Starts a gather with one object instead of a range of objects.
Definition at line 179 of file multi_gather.h.