https://github.com/N-BodyShop/changa
Revision 9ee829f600da797891e861ab5916bf81225d799d authored by Cambridge on 30 April 2018, 06:07:45 UTC, committed by Tom Quinn on 05 July 2018, 23:23:35 UTC
Change-Id: I1c58c774f3b21e3fdf085809bb49381f963ab52b
1 parent d84c8e1
Raw File
Tip revision: 9ee829f600da797891e861ab5916bf81225d799d authored by Cambridge on 30 April 2018, 06:07:45 UTC
All the changes for GPU local tree walk
Tip revision: 9ee829f
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);
  virtual CLBStatsMsg* AssembleStats();

private:
  CProxy_HierarchOrbLB  thisProxy;

};

#endif /* HIERARCH_ORBLB_H */
back to top