DASH
0.3.0
|
Specifies how a Pattern distributes elements to units in a specific dimension. More...
#include <Distribution.h>
Public Member Functions | |
Distribution ()=default | |
Constructor, initializes Distribution with distribution type NONE. More... | |
Distribution (dash::internal::DistributionType distType, int blockSize) | |
Constructor, initializes Distribution with a distribution type and a block size. More... | |
Distribution (const self_t &other)=default | |
self_t & | operator= (const self_t &other)=default |
template<typename IndexType , typename SizeType > | |
IndexType | local_index_to_block_coord (IndexType unit_teamspec_coord, IndexType local_index, SizeType num_units_in_dim) const |
Resolve the block coordinate for a given local index in the distribution's dimension. More... | |
template<typename IndexType , typename SizeType > | |
IndexType | max_blocksize_in_range (IndexType range, SizeType num_units) const |
The maximum size of a single block within an extent for a given total number of units. More... | |
bool | operator== (const Distribution &other) const |
Equality comparison operator. More... | |
bool | operator!= (const Distribution &other) const |
Inequality comparison operator. More... | |
Public Attributes | |
dash::internal::DistributionType | type {dash::internal::DIST_NONE} |
dash::default_size_t | blocksz {0} |
Friends | |
std::ostream & | operator<< (std::ostream &os, const self_t &distribution) |
Related Functions | |
(Note that these are not member functions.) | |
const Distribution | BLOCKED |
Distribution specifying that elements in a Pattern's dimension shall be distributed to units in even-sized blocks. More... | |
const Distribution | CYCLIC |
Distribution specifying that elements in a Pattern's dimension shall be distributed by cycling among units. More... | |
const Distribution | NONE |
Distribution specifying that elements in a Pattern's dimension shall not be distributed. More... | |
Distribution | TILE (int blockSize) |
Distribution specifying that elements in a Pattern's dimension shall be distributed to units in a tiled blocks of the given size. More... | |
Distribution | BLOCKCYCLIC (int blockSize) |
Distribution specifying that elements in a Pattern's dimension shall be distributed to units in blocks of the given size. More... | |
Specifies how a Pattern distributes elements to units in a specific dimension.
Predefined configurations are
Definition at line 24 of file Distribution.h.
|
default |
Constructor, initializes Distribution with distribution type NONE.
Referenced by Distribution().
|
inline |
Constructor, initializes Distribution with a distribution type and a block size.
Definition at line 47 of file Distribution.h.
References Distribution().
|
inline |
Resolve the block coordinate for a given local index in the distribution's dimension.
Definition at line 63 of file Distribution.h.
|
inline |
The maximum size of a single block within an extent for a given total number of units.
range | Number of elements to distribute |
num_units | Number of units to which elements are distributed |
Definition at line 114 of file Distribution.h.
Referenced by dash::ShiftTilePattern< NumDimensions, Arrangement, IndexType >::ndim(), dash::SeqTilePattern< NumDimensions, Arrangement, IndexType >::ndim(), dash::BlockPattern< 1, Arrangement, IndexType >::underfilled_blocksize(), dash::BlockPattern< 1, ROW_MAJOR, dash::default_index_t >::underfilled_blocksize(), and dash::TilePattern< NumDimensions, Arrangement, IndexType >::underfilled_blocksize().
|
inline |
Inequality comparison operator.
Definition at line 153 of file Distribution.h.
|
inline |
Equality comparison operator.
Definition at line 146 of file Distribution.h.
|
related |
Distribution specifying that elements in a Pattern's dimension shall be distributed to units in blocks of the given size.
|
related |
Distribution specifying that elements in a Pattern's dimension shall be distributed to units in even-sized blocks.
Definition at line 165 of file Distribution.h.
|
related |
Distribution specifying that elements in a Pattern's dimension shall be distributed by cycling among units.
Semantically equivalent to BLOCKCYCLIC(1) but with slight performance improvement.
Definition at line 174 of file Distribution.h.
|
related |
Distribution specifying that elements in a Pattern's dimension shall not be distributed.
Definition at line 181 of file Distribution.h.
|
related |
Distribution specifying that elements in a Pattern's dimension shall be distributed to units in a tiled blocks of the given size.