Multistep load balancer where no processor topology information is used. More...
#include <MultistepLB_notopo.h>
Public Member Functions | |
MultistepLB_notopo (const CkLBOptions &) | |
MultistepLB_notopo (CkMigrateMessage *m) | |
void | work (BaseLB::LDStats *stats) |
Implement load balancing: store loads and determine active processors and objects, then call ORB3D. | |
void | work2 (BaseLB::LDStats *stats, int count) |
ORB3D load balance. | |
void | greedy (BaseLB::LDStats *stats, int count) |
void | pup (PUP::er &p) |
Additional Inherited Members | |
![]() | |
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 | |
Multistep load balancer where no processor topology information is used.
This balancer recognizes different "phases" (called rungs in other parts of the code), and uses loads based on measurements of the previous calculation at the same phase. For large phases, (i.e., when many particles are active, the TreePieces are divided among by 3 dimensional ORB based on the centroids of the TreePieces. For small phases, a greedy algorithm is used.