13 #ifndef _MULTISTEPLB_H_
14 #define _MULTISTEPLB_H_
16 #define MCLBMS // multistepping enabled
17 #define MCLB_ORBSMOOTH // orbsmooth for large steps
18 #define MCLB_RR // round robin otherwise
20 #include "CentralLB.h"
24 #include "MultistepLB.decl.h"
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);
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);
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);
95 Node *halveNodes(
Node *start,
int np);
hold information needed by the load balancer for each TreePiece.
Definition: MapStructures.h:121
Definition: MapStructures.h:170
Definition: MultistepLB.h:28
Definition: MultistepLB.h:51