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, Tag > Struct Template Reference

This class abstracts the semantics of an allreduce skeleton by exposing only the necessary information in its representation. More...

Public Member Functions

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

Public Types

using skeleton_tag_type = tags::allreduce< Tag >
 
using base_type = decltype(skeletons::compose(skeletons::reduce< Tag, stapl::use_default, Span >(std::declval< Op >()), skeletons::broadcast< Tag, stapl::use_default, Span >(stapl::identity_op())))
 

Detailed Description

template<typename Op, typename Span, typename Tag>
struct stapl::skeletons::skeletons_impl::allreduce< Op, Span, Tag >

This class abstracts the semantics of an allreduce skeleton by exposing only the necessary information in its representation.

The general case for an allreduce skeleton which can handle inputs of arbitrary sizes is a reduction skeleton followed by a broadcast skeleton.

This abstraction not only makes the reconstruction of an allreduce skeleton easier, but also provides access to the underlying operations of the enclosed reduction operation. 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.
Tagdetermines the type of the allreduce skeleton

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