DIY  3.0
data-parallel out-of-core C++ library
 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