|
template<typename Tag = stapl::use_default, typename Flows = stapl::use_default, typename Span = stapl::use_default, bool SetResult = false, typename Op > |
result_of::broadcast< Tag, Flows, Span, Op, SetResult > | stapl::skeletons::broadcast (Op &&op) |
| A broadcast tree is a common skeleton that is used in various applications, e.g., allreduce, reduce_to_loc, etc. A broadcast skeleton in the skeletons library is a reverse_tree made out of a broadcast parametric dependency. The behavior of the enclosed broadcast parametric dependency changes based on the given tag (. More...
|
|
template<bool SetResult = false, typename Tag = stapl::use_default, typename Flows = stapl::use_default> |
result_of::broadcast_to_locs< Tag, Flows, SetResult > | stapl::skeletons::broadcast_to_locs (void) |
| This broadcast skeleton is used when the result of the broadcast should have a representative on each location. Therefore, a span::per_location is used in this skeleton. Flows are still allowed to be customized for this skeleton. More...
|
|
Broadcast-based Skeletons
◆ broadcast()
template<typename Tag = stapl::use_default, typename Flows = stapl::use_default, typename Span = stapl::use_default, bool SetResult = false, typename Op >
A broadcast tree is a common skeleton that is used in various applications, e.g., allreduce, reduce_to_loc, etc. A broadcast skeleton in the skeletons library is a reverse_tree
made out of a broadcast parametric dependency. The behavior of the enclosed broadcast parametric dependency changes based on the given tag
(.
- See also
- reverse_binary_tree_pd)
If tag tag is :
tags::left_aligned
- creates the default broadcast skeleton which is used in various skeletons.
tags::right_aligned
- creates a right-aligned broadcast tree is which used in skeletons such as scan_blelloch
stapl::left_skewed
- the most unbalanced broadcast skeleton
- Template Parameters
-
Flows | the flow to be used for the reverse_tree . Some skeletons need a flow other than the default one for a tree |
Span | the iteration space for elements on each level of the tree |
- Parameters
-
op | the operation (an element-wise unary functor) to be used in each broadcast parametric dependency. Usually, stapl::identity is used |
- Template Parameters
-
Tag | determines the type of the broadcast skeleton |
- Returns
- a broadcast skeleton
- Template Parameters
-
SetResult | whether the skeleton should set the task results on the pg edge container or not |
- See also
- tags::right_aligned
-
tags::left_aligned
◆ broadcast_to_locs()
template<bool SetResult = false, typename Tag = stapl::use_default, typename Flows = stapl::use_default>
result_of::broadcast_to_locs<Tag, Flows, SetResult> stapl::skeletons::broadcast_to_locs |
( |
void |
| ) |
|
This broadcast skeleton is used when the result of the broadcast should have a representative on each location. Therefore, a span::per_location
is used in this skeleton. Flows
are still allowed to be customized for this skeleton.
- Template Parameters
-
SetResult | whether the skeleton should set the task results on the pg edge container or not |
Flows | the customized flow to be used in the reverse_tree |
Tag | determines the type of the broadcast skeleton |
- Returns
- a broadcast skeleton that broadcasts one element to each location with custom flows
- See also
- broadcast
-
spans::per_location