DIY  3.0
data-parallel out-of-core C++ library
 All Classes Namespaces Functions Typedefs Groups Pages
Public Types | Public Member Functions | List of all members
diy::RegularBroadcastPartners Struct Reference

Partners for broadcast. More...

#include <diy/partners/broadcast.hpp>

Inheritance diagram for diy::RegularBroadcastPartners:
diy::RegularMergePartners diy::RegularPartners

Public Types

typedef RegularMergePartners Parent
 base class merge reduction
 
- Public Types inherited from diy::RegularMergePartners
typedef RegularPartners Parent
 
- Public Types inherited from diy::RegularPartners
typedef std::vector< int > CoordVector
 
typedef std::vector< int > DivisionVector
 
typedef std::vector< DimKKVSVector
 
typedef DiscreteBounds Bounds
 
typedef RegularDecomposer< BoundsDecomposer
 

Public Member Functions

template<class Decomposer >
 RegularBroadcastPartners (const Decomposer &decomposer, int k, bool contiguous=true)
 contiguous parameter indicates whether to match partners contiguously or in a round-robin fashion; contiguous is useful when data needs to be united; round-robin is useful for vector-"halving" More...
 
 RegularBroadcastPartners (const DivisionVector &divs, const KVSVector &kvs, bool contiguous=true)
 
size_t rounds () const
 returns total number of rounds
 
int size (int round) const
 returns size of a group of partners in a given round
 
int dim (int round) const
 returns dimension (direction of partners in a regular grid) in a given round
 
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
 
int parent_round (int round) const
 returns what the current round would be in the first or second parent merge reduction
 
void incoming (int round, int gid, std::vector< int > &partners, const Master &m) const
 
void outgoing (int round, int gid, std::vector< int > &partners, const Master &m) const
 
- Public Member Functions inherited from diy::RegularMergePartners
template<class Decomposer >
 RegularMergePartners (const Decomposer &decomposer, int k, bool contiguous=true)
 
 RegularMergePartners (const DivisionVector &divs, const KVSVector &kvs, bool contiguous=true)
 
bool active (int round, int gid, const Master &) const
 
void incoming (int round, int gid, std::vector< int > &partners, const Master &) const
 
void outgoing (int round, int gid, std::vector< int > &partners, const Master &) const
 
- Public Member Functions inherited from diy::RegularPartners
template<class Decomposer_ >
 RegularPartners (const Decomposer_ &decomposer, int k, bool contiguous=true)
 
 RegularPartners (const DivisionVector &divs, const KVSVector &kvs, bool contiguous=true)
 
size_t rounds () const
 
int size (int round) const
 
int dim (int round) const
 
int step (int round) const
 
const DivisionVector & divisions () const
 
const KVSVector & kvs () const
 
bool contiguous () const
 
void fill (int round, int gid, std::vector< int > &partners) const
 
int group_position (int round, int c, int step) const
 

Additional Inherited Members

- Static Public Member Functions inherited from diy::RegularPartners
static void factor (int k, const DivisionVector &divisions, KVSVector &kvs)
 

Detailed Description

Partners for broadcast.

Constructor & Destructor Documentation

template<class Decomposer >
diy::RegularBroadcastPartners::RegularBroadcastPartners ( const Decomposer decomposer,
int  k,
bool  contiguous = true 
)
inline

contiguous parameter indicates whether to match partners contiguously or in a round-robin fashion; contiguous is useful when data needs to be united; round-robin is useful for vector-"halving"

Parameters
decomposerdomain decomposition
ktarget k value
contiguousdistance doubling (true) or halving (false)
diy::RegularBroadcastPartners::RegularBroadcastPartners ( const DivisionVector &  divs,
const KVSVector &  kvs,
bool  contiguous = true 
)
inline
Parameters
divsexplicit division vector
kvsexplicit k vector
contiguousdistance doubling (true) or halving (false)

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