DASH
0.3.0
|
Concept of a distribution pattern of n-dimensional containers to units in a team. More...
![]() |
Modules | |
Pattern Properties | |
Property system for specification and deduction of pattern types. | |
Functions | |
template<typename PartitioningTags , typename MappingTags , typename LayoutTags , class SizeSpecType > | |
TeamSpec< SizeSpecType::ndim::value, typename SizeSpecType::index_type > | dash::make_team_spec (const SizeSpecType &sizespec, dash::Team &team=dash::Team::All(), typename SizeSpecType::size_type n_nodes=0, typename SizeSpecType::size_type n_numa_dom=0, typename SizeSpecType::size_type n_cores=0) |
{} More... | |
template<typename PartitioningTags , typename MappingTags , typename LayoutTags , class SizeSpecType , class TeamSpecType > | |
DistributionSpec< SizeSpecType::ndim::value > | dash::make_distribution_spec (const SizeSpecType &sizespec, const TeamSpecType &teamspec) |
Generic Abstract Factory for instances of dash::DistributionSpec . More... | |
template<typename PartitioningTags = dash::pattern_partitioning_default_properties, typename MappingTags = dash::pattern_mapping_default_properties, typename LayoutTags = dash::pattern_layout_default_properties, class SizeSpecType , class TeamSpecType > | |
std::enable_if< !MappingTags::diagonal &&PartitioningTags::rectangular &&PartitioningTags::balanced &&!PartitioningTags::unbalanced &&LayoutTags::blocked, TilePattern< SizeSpecType::ndim::value, dash::ROW_MAJOR, typename SizeSpecType::index_type >>::type | dash::make_pattern (const SizeSpecType &sizespec, const TeamSpecType &teamspec) |
Generic Abstract Factory for models of the Pattern concept. More... | |
Concept of a distribution pattern of n-dimensional containers to units in a team.
A pattern realizes a projection of a global index range to a local view:
Team Spec | Container |
---|---|
[ unit 0 : unit 1 ] | [ 0 1 2 3 4 5 ] |
[ unit 1 : unit 0 ] | [ 6 7 8 9 10 11 ] |
This pattern would assign local indices to teams like this:
Team | Local indices |
---|---|
unit 0 | [ 0 1 2 9 10 11 ] |
unit 1 | [ 3 4 5 6 7 8 ] |
Return Type | Method | Parameters | Description |
---|---|---|---|
index | local_at | index[d] lp | Linear local offset of the local point lp in local memory. |
index | global_at | index[d] gp | Global offset of the global point gp in the pattern's iteration order. |
team_unit_t | unit_at | index[d] gp | Unit id mapped to the element at global point p |
global to local | |||
{unit,index} | local | index gi | Unit and linear local offset at the global index gi |
{unit,index[d]} | local | index[d] gp | Unit and local coordinates at the global point gp |
{unit,index} | local_index | index[d] gp | Unit and local linear offset at the global point gp |
point[d] | local_coords | index[d] gp | Local coordinates at the global point gp |
local to global | |||
index[d] | global | unit u, index[d] lp | Local coordinates lp of unit u to global coordinates |
index | global_index | unit u, index[d] lp | Local coordinates lp of unit u to global index |
index[d] | global | index[d] lp | Local coordinates lp of active unit to global coordinates |
index | global | unit u, index li | Local offset li of unit u to global index |
index | global | index li | Local offset li of active unit to global index |
blocks | |||
size[d] | blockspec | Number of blocks in all dimensions. | |
size[d] | local_blockspec | Number of local blocks in all dimensions. | |
index | block_at | index[d] gp | Global index of block at global coordinates gp |
viewspec | block | index gbi | Offset and extent in global cartesian space of block at global block index gbi |
viewspec | local_block | index lbi | Offset and extent in global cartesian space of block at local block index lbi |
viewspec | local_block_local | index lbi | Offset and extent in local cartesian space of block at local block index lbi |
locality test | |||
bool | is_local | index gi, unit u | Whether the global index gi is mapped to unit u |
bool | is_local | dim d, index o, unit u | (proposed) Whether any element in dimension d at global offset o is local to unit u |
size | |||
size | capacity | Maximum number of elements in the pattern in total | |
size | local_capacity | Maximum number of elements assigned to a single unit | |
size | size | Number of elements indexed in the pattern | |
size | local_size | Number of elements local to the calling unit | |
size[d] | extents | Number of elements in the pattern in all dimension | |
size | extent | dim d | Number of elements in the pattern in dimension d |
size[d] | local_extents | unit u | Number of elements local to the given unit, by dimension |
size | local_extent | dim d | Number of elements local to the calling unit in dimension d |
DistributionSpec<SizeSpecType::ndim::value> dash::make_distribution_spec | ( | const SizeSpecType & | sizespec, |
const TeamSpecType & | teamspec | ||
) |
#include </tmp/tmporruphar/dash/include/dash/pattern/MakePattern.h>
Generic Abstract Factory for instances of dash::DistributionSpec
.
Creates a DistributionSpec object from given pattern traits.
{}
sizespec | Size spec of cartesian space to be distributed by the pattern. |
teamspec | Team spec containing layout of units mapped by the pattern. |
Definition at line 246 of file MakePattern.h.
References dash::ndim().
Referenced by dash::make_pattern().
std::enable_if< !MappingTags::diagonal && PartitioningTags::rectangular && PartitioningTags::balanced && !PartitioningTags::unbalanced && LayoutTags::blocked, TilePattern<SizeSpecType::ndim::value, dash::ROW_MAJOR, typename SizeSpecType::index_type>>::type dash::make_pattern | ( | const SizeSpecType & | sizespec, |
const TeamSpecType & | teamspec | ||
) |
#include </tmp/tmporruphar/dash/include/dash/pattern/MakePattern.h>
Generic Abstract Factory for models of the Pattern concept.
Creates an instance of a Pattern model that satisfies the contiguos linearization property from given pattern traits.
{}
dash::TilePattern
if the following constraints are specified: (Partitioning: minimal) and (Layout: blocked) sizespec | Size spec of cartesian space to be distributed by the pattern. |
teamspec | Team spec containing layout of units mapped by the pattern. |
Definition at line 373 of file MakePattern.h.
References dash::make_distribution_spec(), and dash::ndim().
TeamSpec<SizeSpecType::ndim::value, typename SizeSpecType::index_type> dash::make_team_spec | ( | const SizeSpecType & | sizespec, |
dash::Team & | team = dash::Team::All() , |
||
typename SizeSpecType::size_type | n_nodes = 0 , |
||
typename SizeSpecType::size_type | n_numa_dom = 0 , |
||
typename SizeSpecType::size_type | n_cores = 0 |
||
) |
#include </tmp/tmporruphar/dash/include/dash/pattern/MakePattern.h>
{}
sizespec | Size spec of cartesian space to be distributed by the pattern. |
Definition at line 185 of file MakePattern.h.
References dash::Team::All(), and dash::make_team_spec().