mpi ### Classes ------- .. table:: :widths: 40 60 +-----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`environment ` | RAII class to initialize and finalize MPI. | +-----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`communicator ` | C++ wrapper around `MPI_Comm` providing various convenience functions. | +-----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`mpi_type ` | Map C++ datatypes to the corresponding MPI datatypes. | +-----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`mpi_type\ ` | Specialization of mpi::mpi_type for `const` types. | +-----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`mpi_type\\> ` | Specialization of mpi::mpi_type for std::tuple. | +-----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`mpi_type_from_tie ` | Create an `MPI_Datatype` from some struct. | +-----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`lazy ` | Specialization of the `mpi::lazy` class for nda::Array types and the `mpi::tag::scatter` tag. | +-----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`monitor ` | Constructed on top of an MPI communicator, this class helps to monitor and communicate exceptions and other errors of individual processes. | +-----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------+ .. toctree:: :hidden: mpi/environment mpi/communicator mpi/mpi_type mpi/mpi_typeLTconstTGT mpi/mpi_typeLTstd::tupleLTT...GTGT mpi/mpi_type_from_tie mpi/lazy mpi/monitor Functions --------- .. table:: :widths: 40 60 +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`is_initialized ` | Check if MPI has been initialized. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`chunk_length ` | Get the length of the ith subrange after splitting the integer range `[0, end)` evenly across n subranges. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`chunk ` | Divide a given range as evenly as possible across the MPI processes in a communicator and get the subrange assigned to the calling process. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`get_mpi_type ` | Create a new `MPI_Datatype` from a tuple. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`broadcast ` | Generic MPI broadcast. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`reduce ` | Generic MPI reduce. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`reduce_in_place ` | Generic in-place MPI reduce. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`scatter ` | Generic MPI scatter. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`gather ` | Generic MPI gather. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`all_reduce ` | Generic MPI all-reduce. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`all_reduce_in_place ` | Generic MPI all-reduce in-place. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`all_gather ` | Generic MPI all-gather. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`mpi_broadcast ` | Implementation of an MPI broadcast for types that have a corresponding MPI datatype, i.e. for which a specialization of mpi::mpi_type has been defined. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`mpi_reduce ` | Implementation of an MPI reduce for types that have a corresponding MPI datatype, i.e. for which a specialization of mpi::mpi_type has been defined. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`mpi_reduce_in_place ` | Implementation of an in-place MPI reduce for types that have a corresponding MPI datatype, i.e. for which a specialization of mpi::mpi_type has been defined. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`map_C_function ` | Create a new `MPI_Op` from a given binary function by calling `MPI_Op_create`. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`map_add ` | Create a new `MPI_Op` for a generic addition by calling `MPI_Op_create`. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`mpi_scatter ` | Implementation of an MPI scatter for a std::vector. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`mpi_gather ` | Implementation of an MPI gather for a std::vector. | +-------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. toctree:: :hidden: mpi/is_initialized mpi/chunk_length mpi/chunk mpi/get_mpi_type mpi/broadcast mpi/reduce mpi/reduce_in_place mpi/scatter mpi/gather mpi/all_reduce mpi/all_reduce_in_place mpi/all_gather mpi/mpi_broadcast mpi/mpi_reduce mpi/mpi_reduce_in_place mpi/map_C_function mpi/map_add mpi/mpi_scatter mpi/mpi_gather