STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
Classes | Functions
Elementary Operator Spans

Spans define the dimensions of the parametric dependencies in an elementary skeleton based on the given input sizes. More...

+ Collaboration diagram for Elementary Operator Spans:

Classes

class  stapl::skeletons::spans::balanced< 1 >
 A balanced span which is used the most across the skeletons library. It assigns a balanced spawn load to each location. The load on each location is roughly $\frac{n}{p}$. More...
 
struct  stapl::skeletons::spans::binomial_tree< OnSpan, Phase >
 A span for binomial trees which is used in algorithms such as binomial tree scan. More...
 
struct  stapl::skeletons::spans::binomial_tree< OnSpan, tags::up_phase >
 The up-phase span for the up-phase of a binomial tree. More...
 
struct  stapl::skeletons::spans::binomial_tree< OnSpan, tags::down_phase >
 The down-phase span for the down-phase of a binomial tree. More...
 
class  stapl::skeletons::spans::blocked< i >
 A blocked span which is used the most across the skeletons library. It assigns a blocked spawn load to each location. The load on each location is roughly $\frac{n}{p}$. More...
 
class  stapl::skeletons::spans::nest_blocked< dims, nested_dims, Op, level >
 A span which is used for skeletons with nested execution. More...
 
class  stapl::skeletons::spans::nest_blocked< dims, 1, Op, level >
 Specialization for 1D. More...
 
class  stapl::skeletons::spans::only_once
 A span that will just have one element on the location it was created on. More...
 
struct  stapl::skeletons::spans::nearest_pow_two< OnSpan >
 In some skeletons the number of elements to be spawned is less than the elements in the input size. One good example is in the reduction skeleton where the size of the leaves of the tree is less than or equal to the number of elements in the input. More...
 
class  stapl::skeletons::spans::only_nearest_pow_two
 Spans only the nearest power two element to the domain size. It's only use currently is the pre_broadcast skeleton. More...
 
class  stapl::skeletons::spans::per_location
 A balanced span (. More...
 
struct  stapl::skeletons::spans::reduce_to_pow_two< OnSpan >
 In some skeletons it is required to spawn as many elements as the closest smaller power of two. This span defines that behavior. More...
 
struct  stapl::skeletons::spans::tree< OnSpan, tags::left_skewed >
 This is a span for a left-skewed binary tree that looks like the following: More...
 
struct  stapl::skeletons::spans::tree< OnSpan, tags::right_aligned >
 A span for right-aligned binary tree that looks like the following: More...
 
struct  stapl::skeletons::spans::tree< OnSpan, tags::left_aligned >
 A span for a left-aligned reverse binary tree that looks like the following: More...
 
struct  stapl::skeletons::spans::reverse_tree< OnSpan, tags::left_skewed >
 A span for a left-skewed reverse binary tree that looks like the following: More...
 
struct  stapl::skeletons::spans::reverse_tree< OnSpan, tags::right_aligned >
 A span for a right-aligned reverse binary tree that looks like the following: More...
 
struct  stapl::skeletons::spans::reverse_tree< OnSpan, tags::left_aligned >
 A span for a left-aligned reverse binary tree that look like the following: More...
 

Functions

template<int level, typename Op , typename View , typename LevelDims >
void stapl::skeletons::spans::compute_total_dimension (View const &view, LevelDims &level_dims)
 It goes through to the nested views and calculates the flattened equivalent of nested dimensions. For example, for a 2*2 view that each of its elements is 3*3 view the total dimension would be 6*6 and level dims would a vector of tuples([(2,2) , (3,3)]). This information is needed for mappers and currently suffices just for fine grain executions. More...
 

Detailed Description

Spans define the dimensions of the parametric dependencies in an elementary skeleton based on the given input sizes.

Function Documentation

◆ compute_total_dimension()

template<int level, typename Op , typename View , typename LevelDims >
void stapl::skeletons::spans::compute_total_dimension ( View const &  view,
LevelDims &  level_dims 
)

It goes through to the nested views and calculates the flattened equivalent of nested dimensions. For example, for a 2*2 view that each of its elements is 3*3 view the total dimension would be 6*6 and level dims would a vector of tuples([(2,2) , (3,3)]). This information is needed for mappers and currently suffices just for fine grain executions.

Parameters
viewthe input view
level_dimsthe variable that is used for storing the dimension of each nested variable