35 #ifndef __COMM_SPLITTER__
36 #define __COMM_SPLITTER__
47 template<
class Strategy_t >
53 : Strategy_t(args, comm)
67 MPI_Comm_split(
world_comm_, Strategy_t::colorings_[0],
70 MPI_Comm_split(
world_comm_, Strategy_t::colorings_[1],
73 MPI_Comm_split(
world_comm_, Strategy_t::colorings_[2],
76 MPI_Comm_split(
world_comm_, Strategy_t::colorings_[3],
96 int pilotRank()
const {
return Strategy_t::poller_; }
97 int getLeader()
const {
return Strategy_t::leader_; }
106 bundle.
island_id = Strategy_t::group_id_;
boost::shared_ptr< CmdArguments > CmdArguments_t
int global_rank_
global MPI PID
Comm::Bundle_t getBundle() const
construct comm bundle and return
MPI_Comm my_coworker_comm_
CommSplitter(CmdArguments_t args, MPI_Comm comm=MPI_COMM_WORLD)
int poller_local_pid_
local (wrt. the communicator group) rank of the master/pilot process
int getNrWorkerGroups() const
bundles all communicators for a specific role/pid