|
| 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