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()))) |
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.
Op | the operation to be used while reducing the input. |
Span | the iteration space for elements on each level of both the reduction and the broadcast tree. |
Tag | determines the type of the allreduce skeleton |