template<typename ColT, typename IndexT, typename BaseProxyT>
Reducable struct
Derived classes
-
template<typename ColT, typename IndexT>struct ProxyCollectionTraits
-
template<typename ColT, typename IndexT>struct ProxyCollectionTraits
Public types
-
using ReduceStamp = collective::
reduce:: ReduceStamp - using ReduceIdxFuncType = std::function<bool(IndexT const &)>
Constructors, destructors, conversion operators
Public functions
- auto operator=(Reducable const&) -> Reducable& defaulted
-
template<auto f, template<typename Arg> class Op = collective::auto allreduce(Args && ... args) const -> messaging::
NoneOp, typename... Args> PendingSend - All-reduce back to this collection. Performs a reduction using operator
Op
followed by a broadcast tof
with the result. -
template<auto f, template<typename Arg> class Op = collective::auto reduce(Target target, Args && ... args) const -> messaging::
NoneOp, typename Target, typename... Args> PendingSend - Reduce back to a point target. Performs a reduction using operator
Op
followed by a send tof
with the result. -
template<template<typename Arg> class Op = collective::auto reduce(vt::
NoneOp, typename... CBArgs, typename... Args> Callback<CBArgs...> cb, Args && ... args) const -> messaging:: PendingSend - Reduce back to an arbitrary callback. Performs a reduction using operator
Op
and then delivers the result to the callbackcb
. -
template<typename OpT = collective::auto reduce(MsgT*const msg, Callback<MsgT> cb, ReduceStamp stamp = ReduceStamp{}) const -> messaging::
None, typename MsgT, ActiveTypedFnType<MsgT>* f> PendingSend -
template<typename OpT = collective::auto reduce(MsgT*const msg, Callback<MsgT> cb, ReduceStamp stamp = ReduceStamp{}) const -> messaging::
None, typename MsgT> PendingSend -
template<typename OpT, typename FunctorT, typename MsgT, ActiveTypedFnType<MsgT>* f>auto reduce(MsgT*const msg, ReduceStamp stamp = ReduceStamp{}) const -> messaging::
PendingSend -
template<typename OpT, typename FunctorT, typename MsgT>auto reduce(MsgT*const msg, ReduceStamp stamp = ReduceStamp{}) const -> messaging::
PendingSend -
template<typename MsgT, ActiveTypedFnType<MsgT>* f>auto reduce(MsgT*const msg, ReduceStamp stamp = ReduceStamp{}, NodeType const& node = uninitialized_destination) const -> messaging::
PendingSend -
template<typename MsgT, ActiveTypedFnType<MsgT>* f>auto reduceExpr(MsgT*const msg, ReduceIdxFuncType fn, ReduceStamp stamp = ReduceStamp{}, NodeType const& node = uninitialized_destination) const -> messaging::
PendingSend -
template<typename MsgT, ActiveTypedFnType<MsgT>* f>auto reduce(MsgT*const msg, ReduceStamp stamp, IndexT const& idx) const -> messaging::
PendingSend -
template<typename MsgT, ActiveTypedFnType<MsgT>* f>auto reduceExpr(MsgT*const msg, ReduceIdxFuncType fn, ReduceStamp stamp, IndexT const& idx) const -> messaging::
PendingSend
Function documentation
template<typename ColT, typename IndexT, typename BaseProxyT>
template<auto f, template<typename Arg> class Op = collective:: NoneOp, typename... Args>
messaging:: PendingSend vt:: vrt:: collection:: Reducable<ColT, IndexT, BaseProxyT>:: allreduce(Args && ... args) const
All-reduce back to this collection. Performs a reduction using operator Op
followed by a broadcast to f
with the result.
Parameters | |
---|---|
args in | the arguments to reduce. |
Returns | a pending send |
template<typename ColT, typename IndexT, typename BaseProxyT>
template<auto f, template<typename Arg> class Op = collective:: NoneOp, typename Target, typename... Args>
messaging:: PendingSend vt:: vrt:: collection:: Reducable<ColT, IndexT, BaseProxyT>:: reduce(Target target,
Args && ... args) const
Reduce back to a point target. Performs a reduction using operator Op
followed by a send to f
with the result.
Parameters | |
---|---|
target | |
args in | the arguments to reduce. |
Returns | a pending send |
template<typename ColT, typename IndexT, typename BaseProxyT>
template<template<typename Arg> class Op = collective:: NoneOp, typename... CBArgs, typename... Args>
messaging:: PendingSend vt:: vrt:: collection:: Reducable<ColT, IndexT, BaseProxyT>:: reduce(vt:: Callback<CBArgs...> cb,
Args && ... args) const
Reduce back to an arbitrary callback. Performs a reduction using operator Op
and then delivers the result to the callback cb
.
Parameters | |
---|---|
cb in | the callback to trigger with the reduction result |
args in | the arguments to reduce. |
Returns | a pending send |