|
| | Parallel (int *argc, char ***argv, bool active, int groupsize) |
| | Constructor. More...
|
| |
| | ~Parallel () |
| |
| bool | IamMaster () const |
| | Returns true if this process is the master process. More...
|
| |
| bool | IamGroupMaster () const |
| | Returns true if this process is the master process within a group. More...
|
| |
| bool | isMyWork (int i) const |
| | Returns true if the work item is assigned to this process. More...
|
| |
| bool | isMyGroupWork (int i) const |
| | Returns true if the work item is assigned to this process' group. More...
|
| |
| bool | active () const |
| | Returns true if the MPI is active. More...
|
| |
| int | iproc () const |
| | Returns the rank of the communicator (process is). More...
|
| |
| int | igroup () const |
| | Returns the rank of process group. More...
|
| |
| int | igroupproc () const |
| | Returns index of rank within the group. More...
|
| |
| int | Nproc () const |
| | Returns the size of the communicator (process count). More...
|
| |
| int | Ngroup () const |
| | Returns the number of groups. More...
|
| |
| int | groupsize () const |
| | Return group size. More...
|
| |
| template<class T > |
| void | bcast (int owner, T *data, std::size_t N) const |
| | Broadcast array from owner to everyone. More...
|
| |
| template<class T > |
| void | bcast (int owner, NumberArray< T > &data) const |
| | Broadcast array from owner to everyone. More...
|
| |
| template<class T > |
| void | bcast_g (int igroup, int groupowner, T *data, std::size_t N) const |
| | Broadcast array from owner to everyone in the group. More...
|
| |
| template<class T > |
| void | send (T const *array, std::size_t size, int origin, int destination) const |
| | Send data to a process. More...
|
| |
| template<class T > |
| void | recv (T *array, std::size_t size, int origin, int destination) const |
| | Receive data from a process. More...
|
| |
| template<class T > |
| void | sync (T *array, std::size_t chunksize, std::size_t Nchunk) const |
| | Synchronize across processes by composition. More...
|
| |
| template<class T > |
| void | sync_m (T *array, std::size_t chunksize, std::size_t Nchunk) const |
| |
| template<class T > |
| void | sum (T *array, std::size_t N, int owner=0) const |
| | Sum arrays to node. More...
|
| |
| template<class T > |
| void | syncsum (T *array, std::size_t N) const |
| | Synchronize across processes by summing. More...
|
| |
| template<class T > |
| void | syncsum_g (T *array, std::size_t N) const |
| | Synchronize across group's processes by summing. More...
|
| |
| template<class T > |
| void | sum_g (T *array, std::size_t N, int destination) const |
| | Sum array within group to a given process. More...
|
| |
| template<class T > |
| void | mastersum (T *array, std::size_t N, int destgroup) const |
| | Sum array from all group masters to one of the group masters. More...
|
| |
| void | wait () const |
| | Wait for completition of all running tasks. More...
|
| |
| void | wait_g () const |
| |
| void * | groupcomm () const |
| |
The class Parallel holds some useful MPI data, like the rank and size of the communicator. This class should be used for all parallel communication using MPI.