KaMPIng 0.1.1
Flexible and (near) zero-overhead C++ bindings for MPI
Loading...
Searching...
No Matches
parameter_objects.hpp File Reference

Parameter objects return by named parameter factory functions. More...

#include <cstddef>
#include <mpi.h>
#include "kamping/checking_casts.hpp"
#include "kamping/data_buffer.hpp"
#include "kamping/named_parameter_types.hpp"
#include "kamping/serialization.hpp"
#include "kamping/status.hpp"
Include dependency graph for parameter_objects.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  kamping::internal::UnusedRebindContainer< typename >
 Dummy template for representing the absence of a container to rebind to. More...
 
struct  kamping::internal::DataBufferBuilder< Data, parameter_type_param, modifiability, buffer_type, buffer_resize_policy, ValueType >
 Parameter object representing a data buffer. This is an intermediate object which only holds the data and parameters. The actual buffer is created by calling the construct_buffer_or_rebind() method. More...
 
struct  kamping::internal::AllocNewDataBufferBuilder< AllocType, ValueType, parameter_type_param, modifiability, buffer_type, buffer_resize_policy >
 Parameter object representing a data buffer to be allocated by KaMPIng. This is a specialization of DataBufferBuilder for buffer allocation tags, such as alloc_new, alloc_new_using and alloc_container_of. This is an intermediate object not holding any data. The actual buffer is constructed by calling the construct_buffer_or_rebind() method. More...
 
struct  kamping::internal::type_list< Args >
 Helper type for representing a type list. More...
 
struct  kamping::internal::ignore_t< T >
 Tag type for parameters that can be omitted on some PEs (e.g., root PE, or non-root PEs). More...
 
struct  kamping::internal::rank_any_t
 tag struct for MPI_ANY_SOURCE More...
 
struct  kamping::internal::rank_null_t
 tag struct for MPI_PROC_NULL More...
 
class  kamping::internal::RankDataBuffer< rank_type, parameter_type >
 Encapsulates the rank of a PE. This is needed for p2p communication and rooted MPI collectives like MPI_Gather. More...
 
class  kamping::internal::RankDataBuffer< RankType::value, type >
 Encapsulates the rank of a PE. This is needed for p2p communication and rooted MPI collectives like MPI_Gather. More...
 
class  kamping::internal::RankDataBuffer< RankType::any, type >
 Encapsulates the rank of a PE. This is needed for p2p communication and rooted MPI collectives like MPI_Gather. More...
 
class  kamping::internal::RankDataBuffer< RankType::null, type >
 Encapsulates the rank of a PE. This is needed for p2p communication and rooted MPI collectives like MPI_Gather. More...
 
struct  kamping::internal::standard_mode_t
 tag for standard send mode More...
 
struct  kamping::internal::buffered_mode_t
 tag for buffered send mode More...
 
struct  kamping::internal::synchronous_mode_t
 tag for synchronous send mode More...
 
struct  kamping::internal::ready_mode_t
 tag for ready send mode More...
 
struct  kamping::internal::SendModeParameter< SendModeTag >
 Parameter object for send_mode encapsulating the send mode compile-time tag. More...
 
struct  kamping::internal::any_tag_t
 tag struct for message tag More...
 
class  kamping::internal::TagParam< tag_type >
 Encapsulates a message tag. More...
 
class  kamping::internal::TagParam< TagType::value >
 Encapsulates a message tag. Specialization if an explicit tag value is provided. More...
 
class  kamping::internal::TagParam< TagType::any >
 Encapsulates a message tag. Specialization if the value is MPI_ANY_TAG. More...
 

Namespaces

namespace  kamping::internal
 Internal namespace marking the code that is not user-facing.
 

Typedefs

using kamping::internal::RootDataBuffer = RankDataBuffer<RankType::value, ParameterType::root>
 Helper for roots;.
 
using kamping::internal::send_mode_list
 list of all available send modes
 

Enumerations

enum class  kamping::internal::RankType { kamping::internal::value , kamping::internal::any , kamping::internal::null }
 Indicator if a rank parameter holds and actual value or MPI_ANY_SOURCE or MPI_PROC_NULL. More...
 
enum class  kamping::internal::TagType { kamping::internal::value , kamping::internal::any }
 Possible types of tag. More...
 

Functions

template<ParameterType parameter_type, BufferModifiability modifiability, BufferType buffer_type, BufferResizePolicy buffer_resize_policy, typename ValueType = default_value_type_tag, typename Data >
auto kamping::internal::make_data_buffer_builder (Data &&data)
 Factory method for constructing a DataBufferBuilder from the given Container Data.
 
template<ParameterType parameter_type, BufferModifiability modifiability, BufferType buffer_type, BufferResizePolicy buffer_resize_policy, typename Data >
auto kamping::internal::make_data_buffer_builder (std::initializer_list< Data > data)
 Factory method for constructing a DataBufferBuilder from an std::initializer_list.
 
template<ParameterType parameter_type, BufferModifiability modifiability, BufferType buffer_type, BufferResizePolicy buffer_resize_policy, typename ValueType = default_value_type_tag, typename Data >
auto kamping::internal::make_data_buffer_builder (AllocNewT< Data >)
 Factory method for constructing an AllocNewDataBufferBuilder for alloc_new.
 
template<ParameterType parameter_type, BufferModifiability modifiability, BufferType buffer_type, BufferResizePolicy buffer_resize_policy, typename ValueType = default_value_type_tag, template< typename... > typename Container>
auto kamping::internal::make_data_buffer_builder (AllocNewUsingT< Container >)
 Factory method for constructing an AllocNewDataBufferBuilder for alloc_new_using.
 
template<ParameterType parameter_type, BufferModifiability modifiability, BufferType buffer_type, BufferResizePolicy buffer_resize_policy, typename ValueType >
auto kamping::internal::make_data_buffer_builder (AllocContainerOfT< ValueType >)
 Factory method for constructing an AllocNewDataBufferBuilder for alloc_container_of.
 
template<typename ValueType , ParameterType parameter_type, BufferType buffer_type>
auto kamping::internal::make_empty_data_buffer_builder ()
 Factory method for constructing an DataBufferBuilder for an EmptyDataBuffer.
 
template<typename StatusParam >
static MPI_Statuskamping::internal::status_param_to_native_ptr (StatusParam &param)
 returns a pointer to the MPI_Status encapsulated by the provided status parameter object.
 

Variables

static constexpr internal::standard_mode_t kamping::send_modes::standard {}
 global constant for standard send mode
 
static constexpr internal::buffered_mode_t kamping::send_modes::buffered {}
 global constant for buffered send mode
 
static constexpr internal::synchronous_mode_t kamping::send_modes::synchronous {}
 global constant for synchronous send mode
 
static constexpr internal::ready_mode_t kamping::send_modes::ready {}
 global constant for ready send mode
 
template<typename T = void>
constexpr internal::ignore_t< T > kamping::ignore {}
 Tag for parameters that can be omitted on some PEs (e.g., root PE, or non-root PEs).
 
static constexpr internal::any_tag_t kamping::tags::any {}
 global constant for any tag
 
static constexpr internal::rank_any_t kamping::rank::any {}
 global constant for any rank
 
static constexpr internal::rank_null_t kamping::rank::null {}
 global constant for rank NULL
 

Detailed Description

Parameter objects return by named parameter factory functions.