Revision 461127194ea3a543db392e41bc5d3f7b1fe31947 authored by Tom Quinn on 25 September 2015, 23:35:34 UTC, committed by Tom Quinn on 03 September 2016, 00:33:05 UTC
Change-Id: I4a58ab197339960f15730e83095538dced6d5305
1 parent dd76f84
Raw File
HierarchOrbLB.h
/**
 * Author: gplkrsh2@illinois.edu (Harshitha Menon)
*/

#ifndef HIERARCH_ORBLB_H
#define HIERARCH_ORBLB_H

#include "HierarchOrbLB.decl.h"
#include "HybridBaseLB.h"

#include "CentralLB.h"

void CreateHierarchOrbLB();

class HierarchOrbLB : public CBase_HierarchOrbLB
{
public:
  HierarchOrbLB(const CkLBOptions &);
  HierarchOrbLB(CkMigrateMessage *m): CBase_HierarchOrbLB(m) {init();}
  ~HierarchOrbLB();

protected:
  CentralLB *orblb;
  CentralLB *refinelb;

  void init();
  virtual bool QueryBalanceNow(int step) {
    if(step == 0) return false;
    return true;
  };
  virtual bool QueryMigrateStep(int) { return true; };
  virtual void work(LDStats* stats);
  virtual void GetObjsToMigrate(int toPe, double load, LDStats *stats,
      int atlevel, CkVec<LDCommData>& comms, CkVec<LDObjData>& objs);

private:
  CProxy_HierarchOrbLB  thisProxy;

};

#endif /* HIERARCH_ORBLB_H */
back to top