1#ifndef __ONE_MASTER_SPLIT__
2#define __ONE_MASTER_SPLIT__
21template <
class TopoDiscoveryStrategy >
47 if(
rank_ % group_size == 0) {
52 }
else if(
rank_ % group_size == 1) {
112 std::cout <<
"\033[01;31m" <<
"Could not find 'num-coworkers' "
113 <<
"in arguments.. Aborting." <<
"\e[0m" <<
std::endl;
122 std::cout <<
"\033[01;31m" <<
"Could not find 'num-masters' "
123 <<
"in arguments.. Aborting." <<
"\e[0m" <<
std::endl;
128 std::cout <<
"\033[01;31m" <<
"Need at least"
129 <<
" 1 master and 1 coworker to run.. Aborting." <<
"\e[0m" <<
std::endl;
135 std::cout <<
"\033[01;31m" <<
"Need at least "
137 <<
" cores to run.. Aborting." <<
"\e[0m" <<
std::endl;
Inform & endl(Inform &inf)
boost::shared_ptr< CmdArguments > CmdArguments_t
constexpr double e
The value of.
ManyMasterSplit(CmdArguments_t args, MPI_Comm comm=MPI_COMM_WORLD)
virtual ~ManyMasterSplit()
virtual int getNrWorkerGroups() const
Get number of worker groups.
size_t num_coworkers_worker_
Defines an interface for splitter strategy implementations.
int leader_
every core specifies a leader (master is its own leader)
std::vector< unsigned int > colorings_
defines comm splitting
int poller_
every core can specifies a master