KaMPIng 0.1.1
Flexible and (near) zero-overhead C++ bindings for MPI
|
this namespace contains all builtin operations supported by MPI. More...
Classes | |
struct | null |
builtin null operation (aka MPI_OP_NULL ) More... | |
Typedefs | |
template<typename T = void> | |
using | max = kamping::internal::max_impl<T> |
builtin maximum operation (aka MPI_MAX ) | |
template<typename T = void> | |
using | min = kamping::internal::min_impl<T> |
builtin minimum operation (aka MPI_MIN ) | |
template<typename T = void> | |
using | plus = std::plus<T> |
builtin summation operation (aka MPI_SUM ) | |
template<typename T = void> | |
using | multiplies = std::multiplies<T> |
builtin multiplication operation (aka MPI_PROD ) | |
template<typename T = void> | |
using | logical_and = std::logical_and<T> |
builtin logical and operation (aka MPI_LAND ) | |
template<typename T = void> | |
using | bit_and = std::bit_and<T> |
builtin bitwise and operation (aka MPI_BAND ) | |
template<typename T = void> | |
using | logical_or = std::logical_or<T> |
builtin logical or operation (aka MPI_LOR ) | |
template<typename T = void> | |
using | bit_or = std::bit_or<T> |
builtin bitwise or operation (aka MPI_BOR ) | |
template<typename T = void> | |
using | logical_xor = kamping::internal::logical_xor_impl<T> |
builtin logical xor operation (aka MPI_LXOR ) | |
template<typename T = void> | |
using | bit_xor = std::bit_xor<T> |
builtin bitwise xor operation (aka MPI_BXOR ) | |
Variables | |
constexpr internal::commutative_tag | commutative {} |
global tag for commutativity | |
constexpr internal::non_commutative_tag | non_commutative {} |
global tag for non-commutativity | |
this namespace contains all builtin operations supported by MPI.
You can either use them by passing their STL counterparts like std::plus<>
, std::multiplies<>
etc. or using the aliases kamping::ops::plus
, kamping::ops::multiplies
, kamping::ops::max()
, ... You can either use them without a template parameter (std::plus<>
) or explicitly specify the type (std::plus<int>
). In the latter case, the type must match the datatype of the buffer the operation shall be applied to.