KaMPIng 0.1.1
Flexible and (near) zero-overhead C++ bindings for MPI
Loading...
Searching...
No Matches
kamping::internal::OperationBuilder< Op, Commutative > Class Template Reference

Parameter wrapping an operation passed to reduce-like MPI collectives. This wraps an MPI operation without the argument of the operation specified. This enables the user to construct such wrapper using the parameter factory kamping::op without passing the type of the operation. The library developer may then construct the actual operation wrapper with a given type later. More...

#include <operation_builder.hpp>

Public Member Functions

 OperationBuilder (Op &&op, Commutative commutative_tag)
 constructs an Operation builder
 
 OperationBuilder (OperationBuilder &&)=default
 Move constructor for OperationsBuilder.
 
OperationBuilderoperator= (OperationBuilder &&)=default
 Move assignment operator for OperationsBuilder.
 
 OperationBuilder (OperationBuilder const &)=delete
 Copy constructor is deleted as buffers should only be moved.
 
OperationBuilderoperator= (OperationBuilder const &)=delete
 Copy assignment operator is deleted as buffers should only be moved.
 
template<typename T >
auto build_operation ()
 constructs an operation for the given type T
 

Static Public Attributes

static constexpr ParameterType parameter_type
 The type of parameter this object encapsulates.
 

Detailed Description

template<typename Op, typename Commutative>
class kamping::internal::OperationBuilder< Op, Commutative >

Parameter wrapping an operation passed to reduce-like MPI collectives. This wraps an MPI operation without the argument of the operation specified. This enables the user to construct such wrapper using the parameter factory kamping::op without passing the type of the operation. The library developer may then construct the actual operation wrapper with a given type later.

Template Parameters
Optype of the operation (may be a function object or a lambda)
Commutativetag specifying if the operation is commutative

Constructor & Destructor Documentation

◆ OperationBuilder()

kamping::internal::OperationBuilder< Op, Commutative >::OperationBuilder ( Op && op,
Commutative commutative_tag )
inline

constructs an Operation builder

Parameters
opthe operation
commutative_tagtag indicating if the operation is commutative (see kamping::op for details)

Member Function Documentation

◆ build_operation()

template<typename T >
auto kamping::internal::OperationBuilder< Op, Commutative >::build_operation ( )
inline

constructs an operation for the given type T

Template Parameters
Targument type of the reduction operation

Member Data Documentation

◆ parameter_type

Initial value:
=
@ op
Tag used to represent a reduce operation in a MPI call.

The type of parameter this object encapsulates.


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