STAPL API Reference |
Modules Classes |
Functions | |
template<typename T , typename Tag = stapl::use_default, typename Span = stapl::use_default> | |
skeletons::result_of::allgather< T, Tag, Span > | stapl::skeletons::allgather (void) |
Allgather skeleton is a function of type [[T]]->[[T]] which is defined using allreduce with a concatenation operator. More... | |
template<typename Tag = stapl::use_default, typename Span = stapl::use_default, typename Op > | |
skeletons::result_of::allreduce< Tag, Span, Op > | stapl::skeletons::allreduce (Op &&reduce_op) |
This all reduce skeleton consists of a reduction phase and a broadcast phase. You can use various types of reduce and broadcast for this skeleton by specifying a tag. Your tag can be one of, but not limited to, the following tags: More... | |
template<typename Tag = stapl::use_default, typename Flows = stapl::use_default, typename Span = stapl::use_default, bool isComplete = false, typename Op > | |
result_of::binary_tree< Tag, Flows, Span, isComplete, Op > | stapl::skeletons::binary_tree (Op &&op) |
A binary tree used in many algorithms including but not limited to reduction, and prefix scan. More... | |
template<typename T , typename Tag = stapl::use_default, typename Span = stapl::use_default> | |
result_of::gather< T, Tag, Span > | stapl::skeletons::gather (void) |
Allgather skeleton is a function of type [[T]]->[[T]] which is defined using allreduce with a concatenation operator. More... | |
template<typename Tag = stapl::use_default, typename Flows = stapl::use_default, typename Span = stapl::use_default, typename Op > | |
result_of::reduce< Tag, Flows, Span, Op > | stapl::skeletons::reduce (Op &&op) |
A reduce skeleton is used in many algorithms, e.g., reduction, allreduce, scan, etc. This skeleton is a tree of reduce parametric dependency. The type of the tree, span, and the parametric dependency to be used in this skeleton is determined by the given tag . A few examples of reduce skeleton variations are when the following tags are used: More... | |
template<bool SetResult = false, typename Tag = stapl::use_default, typename Flows = stapl::use_default, typename Span = stapl::use_default, typename Op > | |
result_of::reduce_to_locs< Tag, Flows, Span, Op, SetResult > | stapl::skeletons::reduce_to_locs (Op &&op) |
A reduce to location skeleton is used to obtain the reduced value of an input/computation on every locations. More... | |
template<typename Span = stapl::use_default, typename Op > | |
result_of::reduce_to_pow_two< Span, Op > | stapl::skeletons::reduce_to_pow_two (Op &&op) |
This skeleton is used as the pre-processing phase of various skeletons including reduce, n-partition, etc. Basically, this skeleton tries to prepare the input for a pow-two based skeleton. More... | |
template<bool SetResult = false, typename Tag = stapl::use_default, typename Flows = stapl::use_default, typename Span = stapl::use_default, bool isComplete = false, bool isPositionAware = false, typename Op , typename Filter = skeletons::no_filter> | |
result_of::reverse_binary_tree< Tag, Flows, Span, isComplete, isPositionAware, Op, Filter, SetResult > | stapl::skeletons::reverse_binary_tree (Op &&op, Filter &&filter=Filter()) |
A reverse binary tree used in many other skeletons such as broadcast. More... | |
Reduce-based Skeletons
skeletons::result_of::allgather<T, Tag, Span> stapl::skeletons::allgather | ( | void | ) |
Allgather skeleton is a function of type [[T]]->[[T]] which is defined using allreduce with a concatenation operator.
An allgather skeleton gathers data from all partitions and distributes the combined data to all partitions.
T | type of the element used in allgather |
Span | the span to be used for reduce and broadcast skeletons |
tag | determines the type of allgather skeleton |
skeletons::result_of::allreduce<Tag, Span, Op> stapl::skeletons::allreduce | ( | Op && | reduce_op | ) |
This all reduce skeleton consists of a reduction phase and a broadcast phase. You can use various types of reduce and broadcast for this skeleton by specifying a tag. Your tag can be one of, but not limited to, the following tags:
reduce_op | the operation to be used for reduction |
tag | determines which type of reduce and broadcast should be used |
Span | the span to be used for reduce and broadcast skeletons |
result_of::binary_tree<Tag, Flows, Span, isComplete, Op> stapl::skeletons::binary_tree | ( | Op && | op | ) |
A binary tree used in many algorithms including but not limited to reduction, and prefix scan.
A binary tree can be created in various ways based on the tag provided to it:
binary_tree_pd
binary_tree_pd
binary_tree_pd
is used.Span | the iteration space for the elements in the reduction tree |
Flows | the flow to be used for this skeleton |
op | the operation (an element-wise binary functor) to be used in each binary_tree_pd |
tag | determines the type of span and binary_tree_pd to be used |
result_of::gather<T, Tag, Span> stapl::skeletons::gather | ( | void | ) |
Allgather skeleton is a function of type [[T]]->[[T]] which is defined using allreduce with a concatenation operator.
An gather skeletons, gathers data from all partitions and distributes the combined data to all partitions.
T | type of the element used in gather |
Span | the span to be used for reduce and broadcast skeletons |
tag | determines the type of gather skeleton |
result_of::reduce<Tag, Flows, Span, Op> stapl::skeletons::reduce | ( | Op && | op | ) |
A reduce skeleton is used in many algorithms, e.g., reduction, allreduce, scan, etc. This skeleton is a tree of reduce parametric dependency. The type of the tree, span, and the parametric dependency to be used in this skeleton is determined by the given tag
. A few examples of reduce skeleton variations are when the following tags are used:
Span | the iteration space for the elements in the reduction tree |
Flows | the flow to be used for this skeleton |
op | the operation (an element-wise binary functor) to be used in each reduce parametric dependency |
tag | determines the type of span and reduce parametric dependency to be used |
result_of::reduce_to_locs<Tag, Flows, Span, Op, SetResult> stapl::skeletons::reduce_to_locs | ( | Op && | op | ) |
A reduce to location skeleton is used to obtain the reduced value of an input/computation on every locations.
This skeleton is obtained by putting a reduce skeleton and a broadcast_to_loc skeleton together. This skeleton can be used with all left-aligned reduce and broadcast skeletons.
SetResult | whether the skeleton should set the task results on the pg edge container or not |
Tag | determines the type of span and reduce parametric dependency to be used |
Flows | the flows to be used in the reduction skeleton iterations |
Span | the iteration space for the elements in the reduction tree |
op | the operation (an element-wise binary functor) to be used in each reduce parametric dependency |
result_of::reduce_to_pow_two<Span, Op> stapl::skeletons::reduce_to_pow_two | ( | Op && | op | ) |
This skeleton is used as the pre-processing phase of various skeletons including reduce, n-partition, etc. Basically, this skeleton tries to prepare the input for a pow-two based skeleton.
op | the operation to be used in order to reduce the input size to the closest pow-of-two size |
Span | the inner span on which the reduce_to_pow_two should be defined |
result_of::reverse_binary_tree< Tag, Flows, Span, isComplete,isPositionAware, Op, Filter, SetResult> stapl::skeletons::reverse_binary_tree | ( | Op && | op, |
Filter && | filter = Filter() |
||
) |
A reverse binary tree used in many other skeletons such as broadcast.
A reverse binary tree can be created in various ways based on the tag provided to it:
reverse_binary_tree_pd
reverse_binary_tree_pd
reverse_binary_tree_pd
is used.SetResult | whether the skeleton should set the task results on the pg edge container or not |
Tag | determines the type of span and reverse_binary_tree_pd to be used reduction tree |
Flows | the flow to be used for this skeleton |
Span | the iteration space for the elements in the |
isPositionAware | whether the op needs to know the position of the node in the dependence graph or not |
op | the operation (an element-wise binary functor) to be used in each reverse_binary_tree_pd |