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. | |