DIY 3.0 data-parallel out-of-core C++ library

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Examples

- Namespace List
- Namespace Members

All Classes Namespaces Functions Typedefs Groups Pages
Classes | Functions | Variables
diy::mpi Namespace Reference

## Classes
struct | Collectives
class | communicator
| Simple wrapper around `MPI_Comm`. More...
struct | maximum
struct | minimum
struct | optional
struct | request
struct | status
struct | environment

## Functions
template<class T >
void | broadcast (const communicator &comm, T &x, int root)
| Broadcast to all processes in `comm`.
template<class T >
void | broadcast (const communicator &comm, std::vector< T > &x, int root)
| Broadcast for vectors.
template<class T >
request | ibroadcast (const communicator &comm, T &x, int root)
| iBroadcast to all processes in `comm`.
template<class T >
void | gather (const communicator &comm, const T &in, std::vector< T > &out, int root)
| Gather from all processes in `comm`. On `root` process, `out` is resized to `comm.size()` and filled with elements from the respective ranks.
template<class T >
void | gather (const communicator &comm, const std::vector< T > &in, std::vector< std::vector< T > > &out, int root)
| Same as above, but for vectors.
template<class T >
void | gather (const communicator &comm, const T &in, int root)
| Simplified version (without `out`) for use on non-root processes.
template<class T >
void | gather (const communicator &comm, const std::vector< T > &in, int root)
| Simplified version (without `out`) for use on non-root processes.
template<class T >
void | all_gather (const communicator &comm, const T &in, std::vector< T > &out)
| all_gather from all processes in `comm`. `out` is resized to `comm.size()` and filled with elements from the respective ranks.
template<class T >
void | all_gather (const communicator &comm, const std::vector< T > &in, std::vector< std::vector< T > > &out)
| Same as above, but for vectors.
template<class T , class Op >
void | reduce (const communicator &comm, const T &in, T &out, int root, const Op &op)
| reduce
template<class T , class Op >
void | reduce (const communicator &comm, const T &in, int root, const Op &op)
| Simplified version (without `out`) for use on non-root processes.
template<class T , class Op >
void | all_reduce (const communicator &comm, const T &in, T &out, const Op &op)
| all_reduce
template<class T , class Op >
void | all_reduce (const communicator &comm, const std::vector< T > &in, std::vector< T > &out, const Op &op)
| Same as above, but for vectors.
template<class T , class Op >
void | scan (const communicator &comm, const T &in, T &out, const Op &op)
| scan
template<class T >
void | all_to_all (const communicator &comm, const std::vector< T > &in, std::vector< T > &out, int n=1)
| all_to_all

## Variables
const int | any_source = MPI_ANY_SOURCE
const int | any_tag = MPI_ANY_TAG

## Detailed Description

C++ MPI wrapper