STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
List of all members | Public Member Functions | Public Types
stapl::skeletons::skeletons_impl::allreduce< Op, Span, tags::reverse_butterfly< B > > Struct Template Reference

This class abstracts the semantics of a reverse-butterfly-based allreduce skeleton by exposing only the necessary information in its representation. More...

Public Member Functions

 allreduce (Op const &op)
 
Op get_op (void) const
 

Public Types

using skeleton_tag_type = tags::allreduce< tags::reverse_butterfly< B > >
 
using base_type = decltype(skeletons::compose(skeletons::reduce_to_pow_two< Span >(std::declval< Op >()), skeletons::reverse_butterfly< false, stapl::use_default, spans::nearest_pow_two< Span > >(std::declval< Op >()), skeletons::expand_from_pow_two< Span >(stapl::identity_op())))
 

Detailed Description

template<typename Op, typename Span, bool B>
struct stapl::skeletons::skeletons_impl::allreduce< Op, Span, tags::reverse_butterfly< B > >

This class abstracts the semantics of a reverse-butterfly-based allreduce skeleton by exposing only the necessary information in its representation.

A reverse-butterfly-based allreduce skeleton can handle only inputs of power-of-two sizes.

This abstraction not only makes the reconstruction of an reverse-butterfly-based allreduce skeleton easier, but also provides access to the underlying reduction operations. Furthermore, it reduces the symbol size for an allreduce skeleton, hence, reducing the total compilation time.

Template Parameters
Opthe operation to be used while reducing the input.
Spanthe iteration space for elements on each level of both the reduction and the broadcast tree.

The documentation for this struct was generated from the following file: