STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
Functions
+ Collaboration diagram for Functional Definition of:

Functions

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

Detailed Description

Broadcast-based Skeletons

Function Documentation

◆ broadcast()

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

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
Flowsthe flow to be used for the reverse_tree. Some skeletons need a flow other than the default one for a tree
Spanthe iteration space for elements on each level of the tree
Parameters
opthe operation (an element-wise unary functor) to be used in each broadcast parametric dependency. Usually, stapl::identity is used
Template Parameters
Tagdetermines the type of the broadcast skeleton
Returns
a broadcast skeleton
Template Parameters
SetResultwhether 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
SetResultwhether the skeleton should set the task results on the pg edge container or not
Flowsthe customized flow to be used in the reverse_tree
Tagdetermines 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