# HPCxx_Collective

Often threads need to coordinate so that one thread may share a value
with the other threads, or so that a number of threads can concatenate
subvectors into one vector. Both of these operations are instances of a
function we call *gather*, which is a parallel-prefix concatenation
operation which is a member of the HPC++ Collective class.
The gather operation allows each thread to contribute a vector of data of
arbitrary size and returns the vector of concatenated subvectors (whose
size is given by the value the reference parameter size when the call
completes). (A broadcast is simply the special case where all but one
thread contributes a vector of length 0.)

## Class Definition

template <class T>
class **HPCxx_Collective**{
public:
HPCxx_Collective(HPCxx_Group *g);
T * gather(int threadKey, T* thread_data, int &size);
...
};

Examples

hpc++@extreme.indiana.edu
*
Last modified: Thu Apr 22 02:09:17 EST 1999
*