STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
Classes | Modules | Functions
Parametric Dependencies

Parametric dependencies define the finest-grain component of the Skeletons Framework. These entities are represented as nodes in the generated dataflow graphs in a given environment. More...

+ Collaboration diagram for Parametric Dependencies:

Classes

class  stapl::skeletons::skeletons_impl::pre_broadcast_pd< Arity, Op, Span, SetResult >
 Creates a set_result parametric dependency given a op. Basically this parametric dependency is only used for sinking values of skeletons which couldn't currently set their results directly without using sink_value skeleton. More...
 
class  stapl::skeletons::skeletons_impl::set_result_pd< Arity, Op, Span, SetResult >
 Creates a set_result parametric dependency given a op. Basically this parametric dependency is only used for sinking values of skeletons which couldn't currently set their results directly without using sink_value skeleton. More...
 

Modules

 Parametric Dependencies Internal
 
 Parametric Dependencies of
 
 Algorithm Specific Parametric
 
 Input Resizing Parametric
 

Functions

skeletons_impl::bitreversal_pd stapl::skeletons::bitreversal_pd (void)
 Creates a biterversal parametric dependency.
 
template<typename ContCond >
skeletons_impl::do_while_pd< ContCond > stapl::skeletons::do_while_pd (ContCond const &continuation_cond)
 Creates a do while parametric dependency given a continuation_cond functor. More...
 
template<typename Generator >
skeletons_impl::farm_pd< Generator > stapl::skeletons::farm_pd (Generator const &generator)
 Creates a farm parametric dependency given a generator. More...
 
template<int NotifCount = 1, typename Op , typename F = skeletons::no_filter>
skeletons_impl::notify_map_pd< Op, NotifCount, F > stapl::skeletons::notify_map_pd (Op const &op, F const &f=F())
 Creates a zip parametric dependency given a op. This method is used whenever filtering is needed on the input edge. More...
 
template<std::size_t Arity, typename Span , bool SetResult, typename Op >
skeletons_impl::pre_broadcast_pd< Arity, Op, Span, SetResult > stapl::skeletons::pre_broadcast_pd (Op const &op)
 Creates a set_result parametric dependency given a op. Basically this parametric dependency is only used for sinking values of skeletons which couldn't currently set their results directly without using sink_value skeleton. More...
 
template<int i, typename Op >
skeletons_impl::serial_pd< Op, i > stapl::skeletons::serial_pd (Op const &op, std::size_t number_of_sets)
 Creates a serial_pd parametric dependency. More...
 
template<std::size_t Arity, typename Span , bool SetResult, typename Op >
skeletons_impl::set_result_pd< Arity, Op, Span, SetResult > stapl::skeletons::set_result_pd (Op const &op)
 Creates a set_result parametric dependency given a op. Basically this parametric dependency is only used for sinking values of skeletons which couldn't currently set their results directly without using sink_value skeleton. More...
 
template<int i = 2, typename Op , typename T >
skeletons_impl::shifted_first_pd< Op, T, i > stapl::skeletons::shifted_first_pd (Op const &op, T neutral_value)
 Creates a shifted first input parametric dependency given a op and number of input flows specified by i, and the default value specified by neutral_value. More...
 
template<int i = 2, std::size_t dims = 1, bool SetResult = false, typename Op , typename F = skeletons::no_filter, typename Mappers = skeletons::no_mapper>
skeletons_impl::zip_pd< Op, i, dims, F, Mappers, SetResult > stapl::skeletons::zip_pd (Op const &op, F const &f=F(), Mappers const &mappers=Mappers())
 Creates a zip parametric dependency given a op. This method is used whenever filtering is needed on the input edge. More...
 

Detailed Description

Parametric dependencies define the finest-grain component of the Skeletons Framework. These entities are represented as nodes in the generated dataflow graphs in a given environment.

Function Documentation

◆ do_while_pd()

template<typename ContCond >
skeletons_impl::do_while_pd<ContCond> stapl::skeletons::do_while_pd ( ContCond const &  continuation_cond)

Creates a do while parametric dependency given a continuation_cond functor.

A do_while parametric dependency represents an element in the dependence graph that controls if the next iteration of a do-while loop should be spawned or not. It does that by wrapping user's ContCond by do_while_stub with and sending memento_stack to it.

◆ farm_pd()

template<typename Generator >
skeletons_impl::farm_pd<Generator> stapl::skeletons::farm_pd ( Generator const &  generator)

Creates a farm parametric dependency given a generator.

The given generator is passed a farm instance using which it can add the initial seeds of the computation.

This parametric dependency is used in farms skeleton to generate the initial seeds of computation.

◆ notify_map_pd()

template<int NotifCount = 1, typename Op , typename F = skeletons::no_filter>
skeletons_impl::notify_map_pd<Op, NotifCount, F> stapl::skeletons::notify_map_pd ( Op const &  op,
F const &  f = F() 
)

Creates a zip parametric dependency given a op. This method is used whenever filtering is needed on the input edge.

A notify_map parametric dependency is similar to a map_pd, however, it waits for NotifCount notifications from the first NotifCount flows.

◆ pre_broadcast_pd()

template<std::size_t Arity, typename Span , bool SetResult, typename Op >
skeletons_impl::pre_broadcast_pd<Arity, Op, Span, SetResult> stapl::skeletons::pre_broadcast_pd ( Op const &  op)

Creates a set_result parametric dependency given a op. Basically this parametric dependency is only used for sinking values of skeletons which couldn't currently set their results directly without using sink_value skeleton.

Template Parameters
Aritythe arity of set_result
Spanthe span for the previous skeleton that is passed to set result for detecting if the corresponding task is spanned or not
SetResultwhether put the task result on the result container or not
Parameters
opthe workfunction to be used in each set_result parametric dependency

◆ serial_pd()

template<int i, typename Op >
skeletons_impl::serial_pd<Op, i> stapl::skeletons::serial_pd ( Op const &  op,
std::size_t  number_of_sets 
)

Creates a serial_pd parametric dependency.

Template Parameters
inumber of inputs.
Parameters
opoperation to be applied at each coordinate.
number_of_setsThe number of sets to form.

◆ set_result_pd()

template<std::size_t Arity, typename Span , bool SetResult, typename Op >
skeletons_impl::set_result_pd<Arity, Op, Span, SetResult> stapl::skeletons::set_result_pd ( Op const &  op)

Creates a set_result parametric dependency given a op. Basically this parametric dependency is only used for sinking values of skeletons which couldn't currently set their results directly without using sink_value skeleton.

Template Parameters
Aritythe number of inputs are passed to the skeleton
SetResultwhether the skeleton should set the task results on the pg edge container or not
Spanthe span for the previous skeleton that is passed to set result_pd for detecting if the corresponding corresponding task is spanned or not
Parameters
opthe workfunction to be used in each set_result parametric dependency

◆ shifted_first_pd()

template<int i = 2, typename Op , typename T >
skeletons_impl::shifted_first_pd<Op, T, i> stapl::skeletons::shifted_first_pd ( Op const &  op,
neutral_value 
)

Creates a shifted first input parametric dependency given a op and number of input flows specified by i, and the default value specified by neutral_value.

Parameters
opthe operation that will be used for the spawned element
neutral_valuethe value to be used for non-existing indices

◆ zip_pd()

template<int i = 2, std::size_t dims = 1, bool SetResult = false, typename Op , typename F = skeletons::no_filter, typename Mappers = skeletons::no_mapper>
skeletons_impl::zip_pd<Op, i, dims, F, Mappers, SetResult> stapl::skeletons::zip_pd ( Op const &  op,
F const &  f = F(),
Mappers const &  mappers = Mappers() 
)

Creates a zip parametric dependency given a op. This method is used whenever filtering is needed on the input edge.

Template Parameters
SetResultwhether the skeleton should set the task results on the pg edge container or not
Fthe filter to be used when consuming from a task A zip parametric dependency is usually used in zip skeleton. It sends input with the same index of each flow to the given Op.