This header contains MPI collective operations, which implement various parallel algorithms that require the coordination of all processes within a communicator. More...
#include <boost/mpi/communicator.hpp>
#include <boost/mpi/inplace.hpp>
#include <vector>
#include <boost/mpi/collectives/all_gather.hpp>
#include <boost/mpi/collectives/all_reduce.hpp>
#include <boost/mpi/collectives/all_to_all.hpp>
#include <boost/mpi/collectives/broadcast.hpp>
#include <boost/mpi/collectives/gather.hpp>
#include <boost/mpi/collectives/scatter.hpp>
#include <boost/mpi/collectives/reduce.hpp>
#include <boost/mpi/collectives/scan.hpp>
Namespaces | |
boost | |
Duration formatting facet for input. | |
boost::mpi | |
Functions | |
template<typename T > | |
void | boost::mpi::all_gather (const communicator &comm, const T &in_value, std::vector< T > &out_values) |
Gather the values stored at every process into vectors of values from each process. More... | |
template<typename T > | |
void | boost::mpi::all_gather (const communicator &comm, const T &in_value, T *out_values) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
void | boost::mpi::all_gather (const communicator &comm, const T *in_values, int n, std::vector< T > &out_values) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
void | boost::mpi::all_gather (const communicator &comm, const T *in_values, int n, T *out_values) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T , typename Op > | |
void | boost::mpi::all_reduce (const communicator &comm, const T *value, int n, T *out_value, Op op) |
Combine the values stored by each process into a single value available to all processes. More... | |
template<typename T , typename Op > | |
void | boost::mpi::all_reduce (const communicator &comm, const T &value, T &out_value, Op op) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T , typename Op > | |
T | boost::mpi::all_reduce (const communicator &comm, const T &value, Op op) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T , typename Op > | |
void | boost::mpi::all_reduce (const communicator &comm, inplace_t< T * > value, int n, Op op) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T , typename Op > | |
void | boost::mpi::all_reduce (const communicator &comm, inplace_t< T > value, Op op) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
void | boost::mpi::all_to_all (const communicator &comm, const std::vector< T > &in_values, std::vector< T > &out_values) |
Send data from every process to every other process. More... | |
template<typename T > | |
void | boost::mpi::all_to_all (const communicator &comm, const T *in_values, T *out_values) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
void | boost::mpi::all_to_all (const communicator &comm, const std::vector< T > &in_values, int n, std::vector< T > &out_values) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
void | boost::mpi::all_to_all (const communicator &comm, const T *in_values, int n, T *out_values) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
void | boost::mpi::broadcast (const communicator &comm, T &value, int root) |
Broadcast a value from a root process to all other processes. More... | |
template<typename T > | |
void | boost::mpi::broadcast (const communicator &comm, T *values, int n, int root) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
void | boost::mpi::broadcast (const communicator &comm, skeleton_proxy< T > &value, int root) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
void | boost::mpi::broadcast (const communicator &comm, const skeleton_proxy< T > &value, int root) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
void | boost::mpi::gather (const communicator &comm, const T &in_value, std::vector< T > &out_values, int root) |
Gather the values stored at every process into a vector at the root process. More... | |
template<typename T > | |
void | boost::mpi::gather (const communicator &comm, const T &in_value, T *out_values, int root) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
void | boost::mpi::gather (const communicator &comm, const T &in_value, int root) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
void | boost::mpi::gather (const communicator &comm, const T *in_values, int n, std::vector< T > &out_values, int root) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
void | boost::mpi::gather (const communicator &comm, const T *in_values, int n, T *out_values, int root) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
void | boost::mpi::gather (const communicator &comm, const T *in_values, int n, int root) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
void | boost::mpi::scatter (const communicator &comm, const std::vector< T > &in_values, T &out_value, int root) |
Scatter the values stored at the root to all processes within the communicator. More... | |
template<typename T > | |
void | boost::mpi::scatter (const communicator &comm, const T *in_values, T &out_value, int root) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
void | boost::mpi::scatter (const communicator &comm, T &out_value, int root) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
void | boost::mpi::scatter (const communicator &comm, const std::vector< T > &in_values, T *out_values, int n, int root) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
void | boost::mpi::scatter (const communicator &comm, const T *in_values, T *out_values, int n, int root) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T > | |
void | boost::mpi::scatter (const communicator &comm, T *out_values, int n, int root) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T , typename Op > | |
void | boost::mpi::reduce (const communicator &comm, const T &in_value, T &out_value, Op op, int root) |
Combine the values stored by each process into a single value at the root. More... | |
template<typename T , typename Op > | |
void | boost::mpi::reduce (const communicator &comm, const T &in_value, Op op, int root) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T , typename Op > | |
void | boost::mpi::reduce (const communicator &comm, const T *in_values, int n, T *out_values, Op op, int root) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T , typename Op > | |
void | boost::mpi::reduce (const communicator &comm, const T *in_values, int n, Op op, int root) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T , typename Op > | |
void | boost::mpi::scan (const communicator &comm, const T &in_value, T &out_value, Op op) |
Compute a prefix reduction of values from all processes in the communicator. More... | |
template<typename T , typename Op > | |
T | boost::mpi::scan (const communicator &comm, const T &in_value, Op op) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
template<typename T , typename Op > | |
void | boost::mpi::scan (const communicator &comm, const T *in_values, int n, T *out_values, Op op) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More... | |
This header contains MPI collective operations, which implement various parallel algorithms that require the coordination of all processes within a communicator.
The header collectives_fwd.hpp
provides forward declarations for each of these operations. To include only specific collective algorithms, use the headers boost/mpi/collectives/algorithm_name.hpp
.