00001 00007 #ifndef ELEMENTS_DEFS_H 00008 #define ELEMENTS_DEFS_H 00009 00010 #include <lbdb.h> 00011 #include "Set.h" 00012 00013 class InfoRecord { 00014 public: 00015 double load; 00016 int Id; // should replace other Ids. 00017 }; 00018 00019 00020 class computeInfo : public InfoRecord { 00021 public: 00022 /* int computeId; replaced by Id */ 00023 int patch1, patch2; 00024 int processor; // caller to ReBalancer MAY leave this field -1, 00025 int oldProcessor; // stores the current assignment of the compute object. 00026 double minTime, maxTime; // min and max compute time 00027 LDObjHandle handle; 00028 }; 00029 00030 class patchInfo : public InfoRecord { 00031 public: 00032 int processor; 00033 int numAtoms; 00034 Set proxiesOn; // caller to ReBalancer should fill in the forced proxies 00035 }; 00036 00037 class processorInfo: public InfoRecord { 00038 public: 00039 // int processorNum; replaced by inherited "Id". 00040 double backgroundLoad; // background work pre-assigned to the processor. 00041 double idleTime; // idle time 00042 double computeLoad; //load due to computes. The total load is computed 00043 // by adding these two. 00044 // Added 10/22/01: indicate if this processor will migrate its objs. 00045 CmiBool available; 00046 Set patchSet; // caller to ReBalancer should leave this field NULL. 00047 Set proxies; // caller to ReBalancer should fill in the forced proxies 00048 Set computeSet; // caller to ReBalancer should leave this field NULL. 00049 00050 // Added 4-29-98: Array to keep track of number of computes that are using 00051 // each proxy on a processor 00052 // unsigned char *proxyUsage; 00053 public: 00054 processorInfo(): backgroundLoad(0.), idleTime(0.), computeLoad(0.), available(CmiTrue) {} 00055 }; 00056 00057 #endif
1.3.9.1