1 #ifndef DIY_PARTNERS_BROADCAST_HPP
2 #define DIY_PARTNERS_BROADCAST_HPP
23 template<
class Decomposer>
26 bool contiguous =
true
28 Parent(decomposer, k, contiguous) {}
31 bool contiguous =
true
33 Parent(divs, kvs, contiguous) {}
36 size_t rounds()
const {
return Parent::rounds(); }
47 inline void incoming(
int round,
int gid, std::vector<int>& partners,
const Master& m)
const
52 inline void outgoing(
int round,
int gid, std::vector<int>& partners,
const Master& m)
const
Partners for merge-reduce.
Definition: merge.hpp:16
RegularBroadcastPartners(const DivisionVector &divs, const KVSVector &kvs, bool contiguous=true)
Definition: broadcast.hpp:29
int size(int round) const
returns size of a group of partners in a given round
Definition: broadcast.hpp:38
int parent_round(int round) const
returns what the current round would be in the first or second parent merge reduction ...
Definition: broadcast.hpp:44
size_t rounds() const
returns total number of rounds
Definition: broadcast.hpp:36
Decomposes a regular (discrete or continuous) domain into even blocks; creates Links with Bounds alon...
Definition: decomposition.hpp:75
int dim(int round) const
returns dimension (direction of partners in a regular grid) in a given round
Definition: broadcast.hpp:40
bool active(int round, int gid, const Master &m) const
returns whether a given block in a given round has dropped out of the merge yet or not ...
Definition: broadcast.hpp:42
Definition: master.hpp:35
RegularBroadcastPartners(const Decomposer &decomposer, int k, bool contiguous=true)
contiguous parameter indicates whether to match partners contiguously or in a round-robin fashion; co...
Definition: broadcast.hpp:24
Partners for broadcast.
Definition: broadcast.hpp:16
RegularMergePartners Parent
base class merge reduction
Definition: broadcast.hpp:18