Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
collectives.hpp File Reference

This header contains MPI collective operations, which implement various parallel algorithms that require the coordination of all processes within a communicator. More...

Include dependency graph for collectives.hpp:
This graph shows which files directly or indirectly include this file:

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

Detailed Description

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.