Common methods among Orb3d class load balancers.
More...
#include <Orb3dLBCommon.h>
|
void | orbPePartition (vector< Event > *events, vector< OrbObject > &tp, int node, BaseLB::LDStats *stats) |
|
void | orbPartition (vector< Event > *events, OrientedBox< float > &box, int nprocs, vector< OrbObject > &tp, BaseLB::LDStats *stats, bool node_partition=false) |
| Recursively partition treepieces among processors by bisecting the load in orthogonal directions. More...
|
|
void | orbPrepare (vector< Event > *tpEvents, OrientedBox< float > &box, int numobjs, BaseLB::LDStats *stats, bool node_partition=false) |
| Prepare structures for the ORB partition. More...
|
|
void | refine (BaseLB::LDStats *stats, int numobjs) |
|
int | partitionRatioLoad (vector< Event > &events, float ratio, float bglp, float bgrp) |
| Given a vector of Events, find a split that partitions them into two partitions with a given ratio of loads. More...
|
|
|
decltype(BaseLB::LDStats::to_proc)* | mapping |
|
decltype(BaseLB::LDStats::from_proc)* | from |
|
CkVec< float > | procload |
|
double | maxPieceProc |
|
int | nextProc |
| index of first processor of the group we are considering
|
|
Common methods among Orb3d class load balancers.
void Orb3dCommon::orbPartition |
( |
vector< Event > * |
events, |
|
|
OrientedBox< float > & |
box, |
|
|
int |
nprocs, |
|
|
vector< OrbObject > & |
tp, |
|
|
BaseLB::LDStats * |
stats, |
|
|
bool |
node_partition = false |
|
) |
| |
|
inlineprotected |
Recursively partition treepieces among processors by bisecting the load in orthogonal directions.
- Parameters
-
events | Array of three (1 per dimension) Event vectors. These are separate in each dimension for easy sorting. |
box | Spatial bounding box |
nprocs | Number of processors over which to partition the Events. N.B. if node_partition is true, then this is the number of nodes. |
tp | Vector of TreePiece data. |
void Orb3dCommon::orbPrepare |
( |
vector< Event > * |
tpEvents, |
|
|
OrientedBox< float > & |
box, |
|
|
int |
numobjs, |
|
|
BaseLB::LDStats * |
stats, |
|
|
bool |
node_partition = false |
|
) |
| |
|
inlineprotected |
Prepare structures for the ORB partition.
- Parameters
-
tpEvents | Array of 3 (1 per dimension) Event vectors. |
box | Reference to bounding box (set here). |
numobjs | Number of tree pieces to partition. |
stats | Data from the load balancing framework. |
node_partition | Are we partitioning on nodes. |
int Orb3dCommon::partitionRatioLoad |
( |
vector< Event > & |
events, |
|
|
float |
ratio, |
|
|
float |
bglp, |
|
|
float |
bgrp |
|
) |
| |
|
inlineprotected |
Given a vector of Events, find a split that partitions them into two partitions with a given ratio of loads.
- Parameters
-
events | Vector of Events to split |
ratio | Target ratio of loads in left partition to total load. |
bglp | Background load on the left processors. |
bgrp | Background load on the right processors. |
- Returns
- Starting index of right partition.
double Orb3dCommon::maxPieceProc |
|
protected |
Take into account memory constraints by limiting the number of pieces per processor.
The documentation for this class was generated from the following file: