Dune::CollectiveCommunication< MPI_Comm > Class Template Reference
[Parallel Communication]

Specialization of CollectiveCommunication for MPI. More...

#include <dune/common/mpicollectivecommunication.hh>

List of all members.

Public Member Functions

 CollectiveCommunication (const MPI_Comm &c)
 Instantiation using a MPI communicator.
int rank () const
int size () const
template<typename T >
sum (T &in) const
template<typename T >
int sum (T *inout, int len) const
template<typename T >
prod (T &in) const
template<typename T >
int prod (T *inout, int len) const
template<typename T >
min (T &in) const
template<typename T >
int min (T *inout, int len) const
template<typename T >
max (T &in) const
template<typename T >
int max (T *inout, int len) const
int barrier () const
template<typename T >
int broadcast (T *inout, int len, int root) const
template<typename T >
int gather (T *in, T *out, int len, int root) const
 operator MPI_Comm () const
template<typename BinaryFunction , typename Type >
int allreduce (Type *inout, int len) const
template<typename BinaryFunction , typename Type >
int allreduce (Type *in, Type *out, int len) const

Detailed Description

template<>
class Dune::CollectiveCommunication< MPI_Comm >

Specialization of CollectiveCommunication for MPI.


Constructor & Destructor Documentation

Dune::CollectiveCommunication< MPI_Comm >::CollectiveCommunication ( const MPI_Comm &  c  )  [inline]

Instantiation using a MPI communicator.


Member Function Documentation

template<typename BinaryFunction , typename Type >
int Dune::CollectiveCommunication< MPI_Comm >::allreduce ( Type *  in,
Type *  out,
int  len 
) const [inline]
template<typename BinaryFunction , typename Type >
int Dune::CollectiveCommunication< MPI_Comm >::allreduce ( Type *  inout,
int  len 
) const [inline]
int Dune::CollectiveCommunication< MPI_Comm >::barrier (  )  const [inline]

Wait until all processes have arrived at this point in the program.

template<typename T >
int Dune::CollectiveCommunication< MPI_Comm >::broadcast ( T *  inout,
int  len,
int  root 
) const [inline]

Distribute an array from the process with rank root to all other processes.

template<typename T >
int Dune::CollectiveCommunication< MPI_Comm >::gather ( T *  in,
T *  out,
int  len,
int  root 
) const [inline]

Each process sends its in array of length len to the root process (including the root itself). In the root process these arrays are stored in rank order in the out array which must have size len * number of processes.

template<typename T >
int Dune::CollectiveCommunication< MPI_Comm >::max ( T *  inout,
int  len 
) const [inline]

template<typename T >
T Dune::CollectiveCommunication< MPI_Comm >::max ( T &  in  )  const [inline]

template<typename T >
int Dune::CollectiveCommunication< MPI_Comm >::min ( T *  inout,
int  len 
) const [inline]

template<typename T >
T Dune::CollectiveCommunication< MPI_Comm >::min ( T &  in  )  const [inline]

Dune::CollectiveCommunication< MPI_Comm >::operator MPI_Comm (  )  const [inline]
template<typename T >
int Dune::CollectiveCommunication< MPI_Comm >::prod ( T *  inout,
int  len 
) const [inline]

template<typename T >
T Dune::CollectiveCommunication< MPI_Comm >::prod ( T &  in  )  const [inline]

int Dune::CollectiveCommunication< MPI_Comm >::rank (  )  const [inline]

Return rank, is between 0 and size()-1.

int Dune::CollectiveCommunication< MPI_Comm >::size (  )  const [inline]

Number of processes in set, is greater than 0.

template<typename T >
int Dune::CollectiveCommunication< MPI_Comm >::sum ( T *  inout,
int  len 
) const [inline]

template<typename T >
T Dune::CollectiveCommunication< MPI_Comm >::sum ( T &  in  )  const [inline]


The documentation for this class was generated from the following file:
Generated on Mon Apr 26 10:45:23 2010 for dune-common by  doxygen 1.6.3