|
OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
|
#include <ManyMasterSplit.h>
Public Member Functions | |
| ManyMasterSplit (CmdArguments_t args, MPI_Comm comm=MPI_COMM_WORLD) | |
| virtual | ~ManyMasterSplit () |
| virtual void | split () |
| virtual int | getNrWorkerGroups () const |
| Get number of worker groups. | |
Protected Member Functions | |
| MPI_Comm | getComm () const |
| int | getRank () const |
| int | getGlobalRank () const |
| int | getNP () const |
| Role_t | getRole () const |
| int | getLeader () const |
| int | getPoller () const |
Protected Attributes | |
| int | rank_ |
| int | global_rank_ |
| int | num_procs_ |
| int | group_id_ |
| CmdArguments_t | cmd_args_ |
| Role_t | role_ |
| std::vector< unsigned int > | colorings_ |
| defines comm splitting | |
| int | leader_ |
| every core specifies a leader (master is its own leader) | |
| int | poller_ |
| every core can specifies a master | |
Private Member Functions | |
| void | parseArguments () |
Private Attributes | |
| size_t | num_masters_ |
| size_t | num_coworkers_worker_ |
| MPI_Comm | comm_ |
| communicator we are splitting | |
A very simple splitting strategy where we have a one core optimizer and pilot (and k of those "islands") and many-core worker groups. The number of islands and co-workers is retrieved from the passed command line arguments:
num-masters
num-coworkers
Definition at line 22 of file ManyMasterSplit.h.
|
inline |
Definition at line 26 of file ManyMasterSplit.h.
References SplitStrategy::SplitStrategy().
|
inlinevirtual |
Definition at line 31 of file ManyMasterSplit.h.
|
inlineinherited |
Definition at line 49 of file SplitStrategy.h.
References comm_.
Referenced by ManyMasterSplit< TopoDiscoveryStrategy >::parseArguments().
|
inlineinherited |
Definition at line 52 of file SplitStrategy.h.
References global_rank_.
|
inlineinherited |
Definition at line 56 of file SplitStrategy.h.
References leader_.
|
inlineinherited |
Definition at line 53 of file SplitStrategy.h.
References num_procs_.
|
inlinevirtual |
Get number of worker groups.
Implements SplitStrategy.
Definition at line 97 of file ManyMasterSplit.h.
References num_coworkers_worker_, num_masters_, and SplitStrategy::num_procs_.
|
inlineinherited |
Definition at line 57 of file SplitStrategy.h.
References poller_.
|
inlineinherited |
Definition at line 51 of file SplitStrategy.h.
References rank_.
|
inlineinherited |
Definition at line 55 of file SplitStrategy.h.
References role_.
|
inlineprivate |
Definition at line 106 of file ManyMasterSplit.h.
References SplitStrategy::cmd_args_, SplitStrategy::getComm(), num_coworkers_worker_, num_masters_, and SplitStrategy::num_procs_.
Referenced by split().
|
inlinevirtual |
Forcing concrete implementation to split and assign poller, optimizer and worker nodes.
Implements SplitStrategy.
Definition at line 35 of file ManyMasterSplit.h.
References SplitStrategy::colorings_, SplitStrategy::group_id_, SplitStrategy::leader_, num_coworkers_worker_, num_masters_, SplitStrategy::num_procs_, OPTIMIZER, parseArguments(), POLLER, SplitStrategy::poller_, SplitStrategy::rank_, SplitStrategy::role_, and WORKER.
|
protectedinherited |
Definition at line 73 of file SplitStrategy.h.
Referenced by ManyMasterSplit< TopoDiscoveryStrategy >::parseArguments(), and SplitStrategy().
|
protectedinherited |
defines comm splitting
Definition at line 78 of file SplitStrategy.h.
Referenced by ManyMasterSplit< TopoDiscoveryStrategy >::split().
|
privateinherited |
communicator we are splitting
Definition at line 63 of file SplitStrategy.h.
Referenced by getComm(), and SplitStrategy().
|
protectedinherited |
Definition at line 69 of file SplitStrategy.h.
Referenced by getGlobalRank(), and SplitStrategy().
|
protectedinherited |
Definition at line 71 of file SplitStrategy.h.
Referenced by ManyMasterSplit< TopoDiscoveryStrategy >::split(), and SplitStrategy().
|
protectedinherited |
every core specifies a leader (master is its own leader)
Definition at line 81 of file SplitStrategy.h.
Referenced by getLeader(), and ManyMasterSplit< TopoDiscoveryStrategy >::split().
|
private |
Definition at line 104 of file ManyMasterSplit.h.
Referenced by getNrWorkerGroups(), parseArguments(), and split().
|
private |
Definition at line 103 of file ManyMasterSplit.h.
Referenced by getNrWorkerGroups(), parseArguments(), and split().
|
protectedinherited |
Definition at line 70 of file SplitStrategy.h.
Referenced by getNP(), ManyMasterSplit< TopoDiscoveryStrategy >::getNrWorkerGroups(), ManyMasterSplit< TopoDiscoveryStrategy >::parseArguments(), ManyMasterSplit< TopoDiscoveryStrategy >::split(), and SplitStrategy().
|
protectedinherited |
every core can specifies a master
Definition at line 84 of file SplitStrategy.h.
Referenced by getPoller(), and ManyMasterSplit< TopoDiscoveryStrategy >::split().
|
protectedinherited |
Definition at line 68 of file SplitStrategy.h.
Referenced by getRank(), ManyMasterSplit< TopoDiscoveryStrategy >::split(), and SplitStrategy().
|
protectedinherited |
Definition at line 75 of file SplitStrategy.h.
Referenced by getRole(), ManyMasterSplit< TopoDiscoveryStrategy >::split(), and SplitStrategy().