28class MultistepLB :
public CBase_MultistepLB {
30 ComparatorFn compares[NDIMS];
31 ComparatorFn pc[NDIMS];
33 decltype(LDStats::to_proc) *mapping;
38 bool QueryBalanceNow(
int step);
40 void makeActiveProcessorList(BaseLB::LDStats *stats,
int numActiveObjs);
42 MultistepLB(
const CkLBOptions &);
43 MultistepLB(CkMigrateMessage *m) : CBase_MultistepLB(m) {
47 void work(BaseLB::LDStats* stats);
61 Partition(): refno(0), load(0.0), node(-1), mapped(0) {};
80 enum {XDIR=0, YDIR, ZDIR};
89 void work2(BaseLB::LDStats* stats,
int count);
90 void greedy(BaseLB::LDStats* stats,
int count);
91 void directMap(TPObject *tp,
int ntp, Node *nodes);
92 void map(TPObject *tp,
int ntp,
int nn, Node *procs,
int xs,
int ys,
int zs,
int dim);
93 int nextDim(
int dim,
int xs,
int ys,
int zs);
94 TPObject *partitionEvenLoad(TPObject *tp,
int &ntp);
95 Node *halveNodes(Node *start,
int np);