vt::collective::reduce namespace

Namespaces

namespace detail
namespace operators

Classes

template<typename enable = void, typename... Args>
struct GetReduceStamp
template<typename... Args>
struct GetReduceStamp<std::enable_if_t<std::is_same_v<std::decay_t<std::tuple_element_t<sizeof...(Args) - 1, std::tuple<Args...>>>, collective::reduce::ReduceStamp>>, Args...>
template<>
struct GetReduceStamp<std::enable_if_t<std::is_same_v<void, void>>>
struct Reduce
A specific, isolated reducer instance for a given scope that sequences reduce operations via the reduction stamp within that scope.
struct ReduceLink
struct ReduceManager
Manage distinct scopes for reductions.
struct ReduceMsg
struct ReduceState
struct ReduceStateHolder

Typedefs

using ReduceStamp = detail::ReduceStamp
using UserIDType = detail::UserIDType
using StrongUserID = detail::StrongUserID
using StrongEpoch = detail::StrongEpoch
using TagPair = detail::TagPair

Functions

static auto makeReduceScope(detail::ReduceScope const& scope) -> std::unique_ptr<Reduce>
template<typename T, typename... Args>
auto makeStamp(Args && ... args) -> ReduceStamp
Create a new reduction stamp.

Typedef documentation

using vt::collective::reduce::TagPair = detail::TagPair

Function documentation

static std::unique_ptr<Reduce> vt::collective::reduce::makeReduceScope(detail::ReduceScope const& scope)

template<typename T, typename... Args>
ReduceStamp vt::collective::reduce::makeStamp(Args && ... args)

Create a new reduction stamp.

Parameters
args in args to the stamp type constructor
Returns a new reduction stamp