|
OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
|
#include <GeometricStrategy.h>


Public Member Functions | |
| GeometricStrategy (size_t num_masters, boost::shared_ptr< CommTopology > topology, MPI_Comm comm) | |
| virtual | ~GeometricStrategy () |
| void | split () |
Protected Member Functions | |
| void | splitInLargestDim () |
| void | splitRegionAt (int split_at_coordinate, int split_in_direction) |
| bool | isSplittable (double origin, double split_at_coordinate, double extension) |
| void | computeCentroid (region_t ®ion) |
| void | coordinatesToPID (coordinates_t coordinate, std::vector< int > &pid) |
| void | printRegion (region_t region) |
Protected Member Functions inherited from SplitStrategy | |
| SplitStrategy (CmdArguments_t args, MPI_Comm comm=MPI_COMM_WORLD) | |
| virtual | ~SplitStrategy () |
| virtual int | getNrWorkerGroups () const =0 |
| Get number of worker groups. More... | |
| 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 | |
| std::vector< region_t > | regions_ |
Protected Attributes inherited from SplitStrategy | |
| 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 More... | |
| int | leader_ |
| every core specifies a leader (master is its own leader) More... | |
| int | poller_ |
| every core can specifies a master More... | |
The geometric strategy partitions the network graph in num_masters equally sized regions and then places a master at the centroid of each region. Workers inside a region are assigned to the master at its centroid.
Definition at line 24 of file GeometricStrategy.h.
|
inline |
Definition at line 28 of file GeometricStrategy.h.
|
inlinevirtual |
Definition at line 33 of file GeometricStrategy.h.
|
inlineprotected |
Definition at line 169 of file GeometricStrategy.h.
References coordinatesToPID(), region_t::extensions, region_t::master_pid, and region_t::origin.
Referenced by split().

|
inlineprotected |
Definition at line 184 of file GeometricStrategy.h.
References SplitStrategy::comm_, and SplitStrategy::rank_.
Referenced by computeCentroid(), and split().
|
inlineprotected |
Definition at line 164 of file GeometricStrategy.h.
Referenced by splitRegionAt().
|
inlineprotected |
Definition at line 197 of file GeometricStrategy.h.
References endl(), region_t::extensions, region_t::origin, and SplitStrategy::rank_.

|
inlinevirtual |
Forcing concrete implementation to split and assign poller, optimizer and worker nodes.
Implements SplitStrategy.
Definition at line 36 of file GeometricStrategy.h.
References SplitStrategy::comm_, computeCentroid(), coordinatesToPID(), region_t::extensions, region_t::origin, SplitStrategy::rank_, regions_, and splitInLargestDim().

|
inlineprotected |
Definition at line 100 of file GeometricStrategy.h.
References regions_, and splitRegionAt().
Referenced by split().

|
inlineprotected |
Definition at line 125 of file GeometricStrategy.h.
References region_t::extensions, isSplittable(), region_t::origin, and regions_.
Referenced by splitInLargestDim().

|
protected |
Definition at line 98 of file GeometricStrategy.h.
Referenced by split(), splitInLargestDim(), and splitRegionAt().
1.8.5