KaMPIng 0.1.1
Flexible and (near) zero-overhead C++ bindings for MPI
Loading...
Searching...
No Matches
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 1234]
 Ckamping::measurements::AggregatedTree< DataType >Class representing an aggregated measurement tree, i.e., a measurement tree for which the global aggregation has been performed
 Ckamping::AllocContainerOfT< T >Buffer allocation tag used for indicating that a buffer of type T should be allocated by KaMPIng
 Ckamping::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
 Ckamping::AllocNewT< Container >Buffer allocation tag used for indicating that a buffer should be allocated by KaMPIng
 Ckamping::AllocNewUsingT< Container >Buffer allocation tag used for indicating that a buffer should be allocated by KaMPIng
 Ckamping::internal::any_tag_tTag struct for message tag
 Ckamping::internal::buffered_mode_tTag for buffered send mode
 Ckamping::internal::CallableWrapper< F >A wrapper around a functor F that makes it callable using the call method
 Ckamping::CommunicationGraphLocalViewLocal view of a a distributed communication graph from the perspective of the current rank. Each vertex is a rank and the edges define possible communication links between the vertices. This view provides access to the (potentially weighted) in- and outgoing edges which are represented as a sequence of neighboring ranks. Note that MPI allows this to be a multi-graph. process' rank
 Ckamping::ops::internal::commutative_tagTag for a commutative reduce operation
 Cstd::conjunction
 Ckamping::contiguous_type< T, N >Constructs an contiguous type of size N from type T using MPI_Type_contiguous
 Ckamping::contiguous_type< std::byte, sizeof(std::pair< First, Second >)>
 Ckamping::contiguous_type< std::byte, sizeof(std::tuple< Ts... >)>
 Ckamping::contiguous_type< std::byte, sizeof(T)>
 Ckamping::internal::CopyMoveEnabler< bool >Class optionally containing a copy constructor while supporting move assignment/construction
 Ckamping::internal::CopyMoveEnabler< enable_copy_construction_v< ownership > >
 Ckamping::internal::CopyMoveEnabler< true >Specialisation of ParameterObjectBase which possesses a copy constructor
 Ckamping::measurements::Counter< CommunicatorType >Distributed counter object
 Ckamping::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
 Ckamping::internal::default_value_type_tagTag type to indicate that the value_type should be inferred from the container
 Ckamping::plugin::grid_plugin_helpers::DestinationMixin for MessageEnvelope to store a destination PE
 Ckamping::internal::DiscardSerializationBuffersPredicate to check whether a buffer provided to make_mpi_result() shall be discard or returned in the result object, including a hotfix for serialization
 Ckamping::DistributedCommunicationGraph< DefaultContainer >A (vertex-centric) distributed communication graph. Each vertex of the graph corresponds to a rank and each edge (i,j) connect two ranks i and j which can communicate with each other. The distributed communication graph is vertex-centric in the sense that on each rank the local graph only contains the corresponding vertex and its in and out neighborhood. Note that MPI allow multiple edges between the same ranks i and j, i.e. the distributed communication graph can be a multi-graph
 Ckamping::internal::EmptyDataBuffer< Data, type, buffer_type_param >Empty buffer that can be used as default argument for optional buffer parameters
 Ckamping::Environment< init_finalize_mode >Wrapper for MPI functions that don't require a communicator. If the template parameter init_finalize_mode is set to InitMPIMode::InitFinalize (default), MPI_Init is called in the constructor, and MPI_Finalize is called in the destructor
 Cstd::exceptionSTL class
 Ckamping::internal::ExtractableBase class containing logic to verify whether a buffer's data has already been extracted. This only has effects if an appropiate assertion level is set
 Cstd::false_type
 Ckamping::internal::FilterOut<... >Base template used to filter a list of types and only keep those whose types meet specified criteria. See the following specialisations for more information
 Ckamping::internal::FilterOut< Predicate >Specialisation of template class used to filter a list of types and only keep the those whose types meet the specified criteria
 Ckamping::internal::FilterOut< Predicate, Head, Tail... >Specialization of template class used to filter a list of (buffer-)types and discard those for which The template is recursively instantiated to check one type after the other and "insert" it into a std::tuple if it meets the criteria . based on https://stackoverflow.com/a/18366475
 Ckamping::internal::FilterOut< Predicate, std::tuple< Types... > >Specialisation of template class for types stored in a std::tuple<...> that is used to filter these types and only keep those which meet certain criteria (see above)
 Ckamping::internal::FlatContainer< T, Enable >Maps a container to is underlying nested container
 Ckamping::internal::FlatContainer< T, std::enable_if_t< is_nested_send_buffer_v< T > > >Maps a container to is underlying nested container
 Ckamping::internal::FlatContainer< T, std::enable_if_t< is_sparse_send_buffer_v< T > > >Maps a container to is underlying nested container
 Ckamping::measurements::FlatPrinterPrinter class that prints an evaluated TimerTree in a flat format in which the timer hierarchy is collapsed into a dot separated identifier per measurement
 Ckamping::measurements::internal::GatherObject encapsulating a gather operation on a given range of objects
 Ckamping::plugin::grid::GridCommunicator< DefaultContainerType >Object returned by plugin::GridCommunicator::make_grid_communicator() representing a grid communicator which enables alltoall communication with a latency in sqrt(p) where p is the size of the original communicator
 Ckamping::plugin::grid_plugin_helpers::GridPositionClass representing a position within a logical two-dimensional processor grid
 Ckamping::GroupA group of MPI processes
 Ckamping::internal::has_no_unused_parameters< RequiredParametersTuple, OptionalParametersTuple, Args >Struct wrapping a check that verifies that no unused parameters are part of the arguments
 Ckamping::internal::has_parameter_helper< typename >Helper struct needed to retrieve the types stored in a std::tuple for the has_parameter_type check
 Ckamping::internal::ignore_t< T >Tag type for parameters that can be omitted on some PEs (e.g., root PE, or non-root PEs)
 Ckamping::is_contiguous_sized_range< T >A type trait that checks if a type T is a contiguous and sized range, i.e., it is a range and has std::size and std::data defined
 Ckamping::is_pair_like< T >A type trait that checks if a type T is a pair-like type, i.e., it may be destructured using std::get<0> and std::get<1> and has a size of 2
 Ckamping::is_range< T >A type trait that checks if a type T is a range, i.e., it has std::begin and std::end defined
 Ckamping::kaboolWrapper around bool to allow handling containers of boolean values
 Ckamping::kamping_tagTag used for indicating that a struct is reflectable
 Ckamping::internal::logical_xor_impl< T >Wrapper struct for logical xor, as the standard library does not provided a function object for it
 Ckamping::internal::logical_xor_impl< void >Template specialization for kamping::internal::logical_xor_impl without type parameter, which leaves to operand type to be deduced. The actual implementation is used in case that the operation is a builtin operation for the given datatype
 Ckamping::measurements::internal::MaxObject encapsulating a maximum operation on a given range of objects
 Ckamping::internal::max_impl< T >Wrapper struct for std::max
 Ckamping::internal::max_impl< void >Template specialization for kamping::internal::max_impl without type parameter, which leaves the operand type to be deduced
 Ckamping::plugin::reproducible_reduce::MessageBuffer< T, Communicator >Responsible for storing and communicating intermediate results between PEs
 Ckamping::plugin::reproducible_reduce::MessageBuffer< T, kamping::Communicator >
 Ckamping::plugin::reproducible_reduce::MessageBufferEntry< T >Encapsulates a single intermediate result (value) and its index
 Ckamping::measurements::internal::MinObject encapsulating a minimum operation on a given range of objects
 Ckamping::internal::min_impl< T >Wrapper struct for std::min
 Ckamping::internal::min_impl< void >Template specialization for kamping::internal::min_impl without type parameter, which leaves the operand type to be deduced. The actual implementation is used in case that the operation is a builtin operation for the given datatype
 Ckamping::internal::mpi_operation_traits< Op, Datatype >Type trait for checking whether a functor is a builtin MPI reduction operation and query corresponding MPI_Op
 Ckamping::mpi_type_traits< T, Enable >The type trait that maps a C++ type T to a type trait that can be used to construct an MPI_Datatype
 Ckamping::mpi_type_traits< T, std::enable_if_t<!std::is_same_v< decltype(type_dispatcher< T >()), no_matching_type > > >The type trait that maps a C++ type T to a type trait that can be used to construct an MPI_Datatype
 Ckamping::MPIAllocator< T >STL-compatible allocator for requesting memory using the builtin MPI allocator
 Ckamping::MPIResult< Args >MPIResult contains the result of a MPI call wrapped by KaMPIng
 Ckamping::no_matching_typeType tag for indicating that no static type definition exists for a type
 Ckamping::measurements::internal::NodeMeasurements< T, default_global_aggregation_mode >Class to store measurement data points associated with a node in a measurement tree, e.g., a timer-tree
 Ckamping::measurements::internal::NodeMeasurements< DataType, GlobalAggregationMode::sum >
 Ckamping::measurements::internal::NodeMeasurements< Duration, GlobalAggregationMode::max >
 Ckamping::ops::internal::non_commutative_tagTag for a non-commutative reduce operation
 Ckamping::NonBlockingResult< CallerProvidedArgs, RequestDataBuffer, Buffers >NonBlockingResult contains the result of a non-blocking MPI call wrapped by KaMPIng. It encapsulates a kamping::Request and stores the buffers associated with the non-blocking call. Upon completion the owning out-buffers among all associated buffers are returned wrappend in an MPIResult object
 Ckamping::ops::null< T >Builtin null operation (aka MPI_OP_NULL)
 Ckamping::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
 Ckamping::internal::parameter_type_to_integral_constant< T >Wrapper to get an std::integral_constant for a kamping::internal::ParameterType
 Ckamping::internal::parameter_types_to_integral_constants< ParameterTypes >Wrapper to get a tuple of std::integral_constant for each kamping::internal::ParameterType passed as template parameter that are extracted as tuple of std::integral_constant
 Ckamping::internal::parameters_to_integral_constant< Parameters >Wrapper to get a tuple of std::integral_constant for each kamping::internal::ParameterType of the parameters
 Ckamping::internal::ParameterTypeEntry< ptype >Wrapper class to store an enum entry (kamping::internal::ParameterType) in a separate type (so that it can be used in a compile time list)
 Ckamping::internal::ParameterTypeUnwrapping< Arg >Trait struct used to determine the underlying type and value of the parameter type of an object with a parameter type. (This is a building block to enable plugins to have their own named parameters)
 Ckamping::internal::ParameterTypeUnwrapping< std::integral_constant< T, v > >Trait struct used to determine the underlying type and value of the parameter type of an std::integral_constant wrapping a parameter type. (This is a building block to enable plugins to have their own named parameters)
 Ckamping::plugin::PluginBase< CommunicatorClass, DefaultContainerType, PluginClass >Helper class for using CRTP for mixins. Which are used to implement kamping plugins
 Ckamping::plugin::PluginBase< Comm, DefaultContainerType, DispatchAlltoall >
 Ckamping::plugin::PluginBase< Comm, DefaultContainerType, GridCommunicator >
 Ckamping::plugin::PluginBase< Comm, DefaultContainerType, ReproducibleReducePlugin >
 Ckamping::plugin::PluginBase< Comm, DefaultContainerType, SampleSort >
 Ckamping::plugin::PluginBase< Comm, DefaultContainerType, SparseAlltoall >
 Ckamping::plugin::PluginBase< Comm, DefaultContainerType, UserLevelFailureMitigation >
 CPlugins
 Ckamping::PoolAnyResult< IndexType, StatusType >Result returned by RequestPool::wait_any()
 Ckamping::plugin::dispatch_alltoall::internal::PredicateDispatchAlltoallPredicate to check whether an argument provided to alltoallv_dispatch shall be discarded in the internal calls
 Ckamping::internal::PredicateForResultObjectPredicate to check whether a buffer provided to make_mpi_result() shall be discard or returned in the result object
 Ckamping::plugin::sparse_alltoall::internal::PredicateForSparseAlltoallPredicate to check whether an argument provided to sparse_alltoall shall be discarded in the internal calls to Communicator::issend()
 Ckamping::internal::PrependParameterType< ptype, Tuple >Template class to prepend the ParameterTypeEntry<ParameterType::ptype> type to a given std::tuple
 Ckamping::internal::PrependType< typename, typename >Base template used to concatenate a type to a given std::tuple. based on https://stackoverflow.com/a/18366475
 Ckamping::internal::PrependType< Head, std::tuple< Tail... > >Specialization of a class template used to preprend a type to a given std::tuple
 Ckamping::plugin::sparse_alltoall::ProbedMessage< T, Communicator >Class encapsulating a probed message that is ready to be received in a sparse alltoall exchange
 Ckamping::internal::rank_any_tTag struct for MPI_ANY_SOURCE
 Ckamping::internal::rank_null_tTag struct for MPI_PROC_NULL
 Ckamping::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
 Ckamping::RankRangeStruct encapsulating a MPI rank range triplet as used in functions like MPI_Group_range_incl/excl
 Ckamping::RankRangesRankRanges encapsulate multiple rank ranges which are used in functions like MPI_Group_range_incl/excl
 Ckamping::internal::ready_mode_tTag for ready send mode
 Ckamping::internal::ReduceOperation< T, Op, Commutative >Wraps an operation and translates it to a builtin MPI_Op or constructs a custom operation
 Ckamping::plugin::reproducible_reduce::ReproducibleCommunicator< T, Communicator >Communicator that can reproducibly reduce an array of a fixed size according to a binary tree scheme
 Ckamping::RequestBase< RequestType >Base class for request wrappers
 Ckamping::RequestBase< PooledRequest< IndexType > >
 Ckamping::RequestBase< Request >
 Ckamping::RequestPool< DefaultContainerType >A pool for storing multiple Request s and checking them for completion
 Ckamping::internal::ResultCategoryNotUsedUse this type if one of the template parameters of MPIResult is not used for a specific wrapped MPI call
 Ckamping::measurements::internal::ScalarOrVectorPrinter< T >Able to print either a single value or a vector of value to the given outstream
 Ckamping::measurements::internal::ScalarOrVectorPrinter< double >
 Ckamping::ScopedDatatypeA scoped MPI_Datatype that commits the type on construction and frees it on destruction. This is useful for RAII-style management of MPI_Datatype objects
 Ckamping::internal::serialization_support_tagTag type to identify serialization support
 Ckamping::measurements::SimpleJsonPrinter< Duration >Printer class that prints an evaluated TimerTree in Json format
 Ckamping::plugin::grid_plugin_helpers::SourceMixin for MessageEnvelope to store a source PE
 Ckamping::Span< T >A span modeled after C++20's std::span
 Ckamping::Span< int const >
 Ckamping::internal::standard_mode_tTag for standard send mode
 Ckamping::StatusWrapper for MPI_Status
 Ckamping::struct_type< T >Constructs a MPI_Datatype for a struct-like type
 Ckamping::struct_type< std::pair< First, Second > >
 Ckamping::struct_type< std::tuple< Ts... > >
 Ckamping::measurements::internal::SumObject encapsulating a summation operation on a given range of objects
 Ckamping::internal::synchronous_mode_tTag for synchronous send mode
 Ckamping::internal::TagParam< tag_type >Encapsulates a message tag
 Ckamping::measurements::Timer< CommunicatorType >Distributed timer object
 Ckamping::measurements::internal::Tree< NodeType >Tree consisting of objects of type NodeType. The tree constitutes a hierarchy of measurements such that each node correspond to one (or multiple) measurement(s) with the same name. For timer tree, the measurements corresponding to the node's children are all started and stopped while the node's current time measurement is running
 Ckamping::measurements::internal::Tree< kamping::measurements::internal::CounterTreeNode< DataType > >
 Ckamping::measurements::internal::Tree< kamping::measurements::internal::TimerTreeNode< double, Duration > >
 Ckamping::measurements::internal::TreeNode< DerivedNode >Object representing a node in a tree. The class is not meant to be used on its own but to encapsulate the basic "tree-node behaviour" (e.g. management of children nodes etc.) for other specialised node classes like TimerTreeNode via CRTP paradigm
 Ckamping::measurements::internal::TreeNode< AggregatedTreeNode< DataType > >
 Ckamping::measurements::internal::TreeNode< CounterTreeNode< DataType > >
 Ckamping::measurements::internal::TreeNode< TimerTreeNode< double, Duration > >
 Ckamping::measurements::internal::TreeNode< TimerTreeNode< TimePoint, Duration > >
 Cstd::true_type
 Cstd::tuple_element< index, kamping::MPIResult< Args... > >Specialization of the std::tuple_element for kamping::MPIResult. Part of the structured binding machinery
 Cstd::tuple_size< kamping::MPIResult< Args... > >Specialization of the std::tuple_size for kamping::MPIResult. Part of the structured binding machinery
 Ckamping::internal::type_list< Args >Helper type for representing a type list
 Ckamping::ops::internal::undefined_commutative_tagTag for a reduce operation without manually declared commutativity (this is only used internally for builtin reduce operations)
 Ckamping::internal::unused_tparamAn unused template parameter
 Ckamping::internal::UnusedRebindContainer< typename >Dummy template for representing the absence of a container to rebind to
 Ckamping::internal::UserOperationPtrWrapper< is_commutative >Wrapper for a user defined reduction operation based on a function pointer
 Ckamping::internal::UserOperationWrapper< is_commutative, T, Op >Wrapper for a user defined reduction operation based on a functor object
 Ckamping::internal::ValueTypeWrapper< has_value_type_member, T >Wrapper to get the value type of a non-container type (aka the type itself)
 Ckamping::internal::ValueTypeWrapper< true, T >Wrapper to get the value type of a container type
 Ckamping::plugin::grid_plugin_helpers::Attributes