OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Public Member Functions | Private Attributes | List of all members
CommSplitter< Strategy_t > Class Template Reference

Role assignment according to strategy (that might use hardware network information). More...

#include <CommSplitter.h>

Inherits Strategy_t.

Public Member Functions

 CommSplitter (CmdArguments_t args, MPI_Comm comm=MPI_COMM_WORLD)
 
virtual ~CommSplitter ()
 
bool isOptimizer () const
 
bool isWorker () const
 
bool isPilot () const
 
MPI_Comm mpiComm () const
 
int globalRank () const
 
int pilotRank () const
 
int getLeader () const
 
int getNrWorkerGroups () const
 
Comm::Bundle_t getBundle () const
 construct comm bundle and return More...
 

Private Attributes

MPI_Comm world_comm_
 
MPI_Group world_group_
 
int global_rank_
 global MPI PID More...
 
MPI_Comm my_worker_comm_
 
MPI_Comm my_opt_comm_
 
MPI_Comm my_coworker_comm_
 
MPI_Comm my_comm_world_
 
int poller_local_pid_
 local (wrt. the communicator group) rank of the master/pilot process More...
 

Detailed Description

template<class Strategy_t>
class CommSplitter< Strategy_t >

Role assignment according to strategy (that might use hardware network information).

The CommSplitter splits the passed (usually MPI_COMM_WORLD) communicator into several comm groups using the colors provided by the splitting strategy. After construction each processor has an assigned role (optimizer, worker or pilot) and a set of communicators to send and receive tasks. The expected colors have the following meaning:

Definition at line 32 of file CommSplitter.h.

Constructor & Destructor Documentation

template<class Strategy_t >
CommSplitter< Strategy_t >::CommSplitter ( CmdArguments_t  args,
MPI_Comm  comm = MPI_COMM_WORLD 
)
inline
template<class Strategy_t >
virtual CommSplitter< Strategy_t >::~CommSplitter ( )
inlinevirtual

Member Function Documentation

template<class Strategy_t >
Comm::Bundle_t CommSplitter< Strategy_t >::getBundle ( ) const
inline
template<class Strategy_t >
int CommSplitter< Strategy_t >::getLeader ( ) const
inline

Definition at line 81 of file CommSplitter.h.

template<class Strategy_t >
int CommSplitter< Strategy_t >::getNrWorkerGroups ( ) const
inline

Definition at line 83 of file CommSplitter.h.

template<class Strategy_t >
int CommSplitter< Strategy_t >::globalRank ( ) const
inline

Definition at line 79 of file CommSplitter.h.

References CommSplitter< Strategy_t >::global_rank_.

template<class Strategy_t >
bool CommSplitter< Strategy_t >::isOptimizer ( ) const
inline

Definition at line 74 of file CommSplitter.h.

References OPTIMIZER.

template<class Strategy_t >
bool CommSplitter< Strategy_t >::isPilot ( ) const
inline

Definition at line 76 of file CommSplitter.h.

References POLLER.

template<class Strategy_t >
bool CommSplitter< Strategy_t >::isWorker ( ) const
inline

Definition at line 75 of file CommSplitter.h.

References WORKER.

template<class Strategy_t >
MPI_Comm CommSplitter< Strategy_t >::mpiComm ( ) const
inline

Definition at line 78 of file CommSplitter.h.

References CommSplitter< Strategy_t >::world_comm_.

template<class Strategy_t >
int CommSplitter< Strategy_t >::pilotRank ( ) const
inline

Definition at line 80 of file CommSplitter.h.

Member Data Documentation

template<class Strategy_t >
int CommSplitter< Strategy_t >::global_rank_
private

global MPI PID

Definition at line 111 of file CommSplitter.h.

Referenced by CommSplitter< Strategy_t >::CommSplitter(), and CommSplitter< Strategy_t >::globalRank().

template<class Strategy_t >
MPI_Comm CommSplitter< Strategy_t >::my_comm_world_
private
template<class Strategy_t >
MPI_Comm CommSplitter< Strategy_t >::my_coworker_comm_
private
template<class Strategy_t >
MPI_Comm CommSplitter< Strategy_t >::my_opt_comm_
private
template<class Strategy_t >
MPI_Comm CommSplitter< Strategy_t >::my_worker_comm_
private
template<class Strategy_t >
int CommSplitter< Strategy_t >::poller_local_pid_
private

local (wrt. the communicator group) rank of the master/pilot process

Definition at line 120 of file CommSplitter.h.

template<class Strategy_t >
MPI_Comm CommSplitter< Strategy_t >::world_comm_
private
template<class Strategy_t >
MPI_Group CommSplitter< Strategy_t >::world_group_
private

The documentation for this class was generated from the following file: