|
TRIQS/mpi 1.3.0
C++ interface to MPI
|
#include "./chunk.hpp"#include "./communicator.hpp"#include "./datatypes.hpp"#include "./environment.hpp"#include "./generic_communication.hpp"#include "./macros.hpp"#include "./utils.hpp"#include <itertools/itertools.hpp>#include <mpi.h>#include <algorithm>#include <concepts>#include <limits>#include <numeric>#include <ranges>#include <stdexcept>#include <type_traits>#include <utility>#include <vector>Provides an MPI broadcast, reduce, scatter and gather for generic ranges.
Definition in file ranges.hpp.
Go to the source code of this file.
Functions | |
| template<std::ranges::sized_range R> | |
| void | mpi::broadcast_range (R &&rg, communicator c={}, int root=0) |
| Implementation of an MPI broadcast for std::ranges::sized_range objects. | |
| template<MPICompatibleRange R1, MPICompatibleRange R2> requires (std::same_as<std::remove_cvref_t<std::ranges::range_value_t<R1>>, std::remove_cvref_t<std::ranges::range_value_t<R2>>>) | |
| void | mpi::gather_range (R1 &&in_rg, R2 &&out_rg, communicator c={}, int root=0, bool all=false) |
| Implementation of an MPI gather for mpi::MPICompatibleRange objects. | |
| template<std::ranges::sized_range R1, std::ranges::sized_range R2> | |
| void | mpi::reduce_range (R1 &&in_rg, R2 &&out_rg, communicator c={}, int root=0, bool all=false, MPI_Op op=MPI_SUM) |
| Implementation of an MPI reduce for std::ranges::sized_range objects. | |
| template<MPICompatibleRange R1, MPICompatibleRange R2> requires (std::same_as<std::remove_cvref_t<std::ranges::range_value_t<R1>>, std::remove_cvref_t<std::ranges::range_value_t<R2>>>) | |
| void | mpi::scatter_range (R1 &&in_rg, R2 &&out_rg, long scatter_size, communicator c={}, int root=0, long chunk_size=1) |
| Implementation of an MPI scatter for mpi::MPICompatibleRange objects. | |