|
KaMPIng 0.2.1
(Near) zero-overhead MPI wrapper for C++
|
Utility that maps C++ types to types that can be understood by MPI. More...
#include <type_traits>#include <mpi.h>#include "kamping/environment.hpp"#include "kamping/kassert/kassert.hpp"#include "kamping/noexcept.hpp"#include "kamping/types/builtin_types.hpp"#include "kamping/types/contiguous_type.hpp"#include "kamping/types/detail/type_helpers.hpp"#include "kamping/types/mpi_type_traits.hpp"#include "kamping/types/scoped_datatype.hpp"#include "kamping/types/struct_type.hpp"

Go to the source code of this file.
Classes | |
| struct | kamping::mpi_type_traits< T, Enable > |
The type trait that maps a C++ type T to an MPI_Datatype for full KaMPIng. More... | |
| struct | kamping::mpi_type_traits< T, std::enable_if_t< has_auto_dispatched_type_v< T > > > |
| Partial specialization of mpi_type_traits for types handled by type_dispatcher. More... | |
| struct | kamping::has_static_type< typename, Enable > |
| Check if the type has a static type definition, i.e. kamping::mpi_type_traits is defined. More... | |
| struct | kamping::has_static_type< T, std::void_t< decltype(mpi_type_traits< T >::data_type())> > |
| Check if the type has a static type definition, i.e. kamping::mpi_type_traits is defined. More... | |
| struct | kamping::kamping_lookup |
| Lookup policy for KaMPIng that resolves MPI_Datatypes via kamping::mpi_type_traits. More... | |
Typedefs | |
| template<typename T , size_t N> | |
| using | kamping::contiguous_type = types::contiguous_type<T, N, kamping_lookup> |
Constructs a contiguous MPI type of N elements of type T, using kamping_lookup to resolve element types (includes the byte-serialization fallback for trivially-copyable types). | |
| template<typename T > | |
| using | kamping::struct_type = types::struct_type<T, kamping_lookup> |
Constructs an MPI struct type for T, using kamping_lookup to resolve field types (includes the byte-serialization fallback for trivially-copyable types). | |
Functions | |
| template<typename T > | |
| auto | kamping::type_dispatcher () |
Maps a C++ type T to a type trait for constructing an MPI_Datatype. | |
| template<typename T > | |
| MPI_Datatype | kamping::construct_and_commit_type () |
Register a new MPI_Datatype for T with the MPI environment. It will be freed when the environment is finalized. | |
| template<typename T > | |
| MPI_Datatype | kamping::mpi_datatype () KAMPING_NOEXCEPT |
Translate type T to an MPI_Datatype using the type defined via mpi_type_traits. | |
Variables | |
| template<typename T > | |
| static constexpr bool | kamping::has_auto_dispatched_type_v |
| Whether the type is handled by the auto-dispatcher type_dispatcher, i.e. whether mpi_type_traits is defined without a user-provided specialization. | |
| template<typename T > | |
| static constexpr bool | kamping::has_static_type_v = has_static_type<T>::value |
true if kamping::mpi_type_traits provides a data_type() function. | |
Utility that maps C++ types to types that can be understood by MPI.