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 LDObjHandle handle; 00027 }; 00028 00029 class patchInfo : public InfoRecord { 00030 public: 00031 int processor; 00032 int numAtoms; 00033 IRSet proxiesOn; // caller to ReBalancer should fill in the forced proxies 00034 }; 00035 00036 class processorInfo: public InfoRecord { 00037 public: 00038 // int processorNum; replaced by inherited "Id". 00039 double backgroundLoad; // background work pre-assigned to the processor. 00040 double idleTime; // idle time 00041 double computeLoad; //load due to computes. The total load is computed 00042 // by adding these two. 00043 // Added 10/22/01: indicate if this processor will migrate its objs. 00044 bool available; 00045 LargeIRSet patchSet; // caller to ReBalancer should leave this field NULL. 00046 LargeIRSet proxies; // caller to ReBalancer should fill in the forced proxies 00047 LargeIRSet computeSet; // caller to ReBalancer should leave this field NULL. 00048 00049 // Added 4-29-98: Array to keep track of number of computes that are using 00050 // each proxy on a processor 00051 // unsigned char *proxyUsage; 00052 public: 00053 processorInfo(): backgroundLoad(0.), idleTime(0.), computeLoad(0.), available(true) {} 00054 }; 00055 00056 #endif
1.3.9.1