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.
|
|
void | orbPrepare (vector< Event > *tpEvents, OrientedBox< float > &box, int numobjs, BaseLB::LDStats *stats, bool node_partition=false) |
| Prepare structures for the ORB partition.
|
|
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.
|
|
|
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.
◆ orbPartition()
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. |
◆ orbPrepare()
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. |
◆ partitionRatioLoad()
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.
◆ maxPieceProc
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: