00001 #ifndef _REFINETOPOLB_H_ 00002 #define _REFINETOPOLB_H_ 00003 00004 #include "CentralLB.h" 00005 #include "TopoLB.h" 00006 #include "topology.h" 00007 00008 #ifndef INFTY 00009 #define INFTY 999999999 00010 #endif 00011 00012 void CreateTopoLB (); 00013 00014 class RefineTopoLB : public CBase_RefineTopoLB 00015 { 00016 public: 00017 RefineTopoLB (const CkLBOptions &opt); 00018 RefineTopoLB (CkMigrateMessage *m) : CBase_RefineTopoLB (m) { }; 00019 00020 void work (LDStats *stats); 00021 void pup (PUP::er &p) { } 00022 00023 //LBTopolog *topo; 00024 00025 protected: 00026 double getCpartHopBytes(int cpart, int proc, int count); 00027 double findSwapGain(int cpart1, int cpart2, int n_pes); 00028 //double getInterMedHopBytes(CentralLB::LDStats *stats,int count, int *newmap); 00029 bool QueryBalanceNow (int step); 00030 void updateCommUA(int count); 00031 }; 00032 00033 00034 #endif /* _TOPOLB_H_ */