Included some missing declarations
[charm.git] / examples / pose / HiSim / BlueGene / util.h
1 #ifndef __UTIL_H
2 #define  __UTIL_H
3
4 #include <stdlib.h>
5 #include <math.h>
6 #include "charm++.h"
7
8 class Config {
9 public:
10    int maxpacksize;
11    int switchVc;
12    int switchBufsize;
13    float switchC_BW;
14    int switchC_Delay;
15    int collection_interval;
16    int linkstats_on;
17    int msgstats_on;
18    int netsim_on;
19    int skip_on;
20    int check_on;
21    int InputBufferStart;
22    int nicStart;
23    int ChannelStart;
24    int numNodes;
25    int origNodes;
26    int switchStart;
27    int numP;
28    int receptionSerial;
29    int inputSpeedup;
30    int use_transceiver;
31    int inputBuffering;
32    int mixedBuffering;
33    int outputBuffering;
34    int loadRoutingTable;
35    int sourceRouting;
36   int NodeStart;
37   int HCAStart;
38   int DMAchannelStart;
39   int SwitchStart;
40   int VCStart;
41   int CMgrStart;       //The collective manager
42
43   int numVC;           // Number of Virtual Channels
44   int maxPacketSize;   // Maximum Packet Size (bytes)
45   int creditSize;      // Number of bytes per credit
46   int headerSize;      // Size of header in each packet
47   int numSwitches;     // Computed from number of nodes
48   int VCBufSize;       // Size of Buffer for each VC in 'Credits'
49   int HCABufSize;       // Size of Buffer for each NCA in 'Credits'
50   int channelPropDelay;   //Channel delay in ns
51   int channelBandwidth;   //Channel bandwidth in GB/s
52   int switchDelay;        //Switch delay us
53   int DMADelaySmall;      //Scheduling delay for the DMA for short messages
54   int DMADelayLarge;      //Scheduling delay for the DMA for large messages
55   int numPorts;           // Number of ports in a switch
56   int numRails;           // Number of fattrees connected to a node
57
58   int HCASendDelay;     //Computation time in HCA
59   int HCARecvDelay;     //HCA Receive overhead
60
61   int procSendOverhead;  //Processor overhead of sending messages
62   int procRecvOverhead;  //Processor overhead of receiving messages
63
64   int HCAPktSendDelay;     //Computation time in HCA for each packet
65   int HCAPktRecvDelay;     //HCA Receive overhead for each packet
66
67   int cacheInjectionThreshold;  //Size of L2 cache. Cache injection
68                                 //will make message passing much
69                                 //faster. So small messages can be
70                                 //sent this way.
71
72   int adaptiveRouting;      //Adaptive routing or static routing
73  
74  public:
75
76   Config (): check_on(0) {}
77   
78   void readConfig(CkArgMsg *m);
79   int getNumVC           () {return numVC;           }
80   int getMaxPacketSize   () {return maxPacketSize;   }
81   int getCreditSize      () {return creditSize;      }
82   int getHeaderSize      () {return headerSize;      }
83   int getNumNodes        () {return numNodes;        }
84   int getNumSwitches     () {return numSwitches;     }
85   int getVCBufSize       () {return VCBufSize;       }
86   int getHCABufSize      () {return HCABufSize;      }
87   int getChannelPropDelay() {return channelPropDelay;}
88   int getChannelBandwidth() {return channelBandwidth;}
89   int getSwitchDelay     () {return switchDelay;     }
90
91   int getDMADelaySmall   () {return DMADelaySmall;   }
92   int getDMADelayLarge   () {return DMADelayLarge;   }
93
94   int getNumPorts        () {return numPorts;        }
95   int getFanout          () {return numPorts/2;      }
96   int getNumRails        () {return numRails;        }
97
98   int getHCASendDelay    () {return HCASendDelay;    }
99   int getHCARecvDelay    () {return HCARecvDelay;    }
100   int getProcSendOverhead() {return procSendOverhead;}
101   int getProcRecvOverhead() {return procRecvOverhead;}
102
103   int getHCAPktSendDelay () {return HCAPktSendDelay; }
104   int getHCAPktRecvDelay () {return HCAPktRecvDelay; }
105
106   int getInjectionThreshold(){return cacheInjectionThreshold;}
107
108   int isAdaptiveRouting  () {return adaptiveRouting;}
109
110   int getNodeStart       () {return NodeStart;      }
111   int getHCAStart        () {return HCAStart;       }
112   int getDMAchannelStart () {return DMAchannelStart;}
113   int getSwitchStart     () {return SwitchStart;    }
114   int getVCStart         () {return VCStart;        }
115   int getChannelStart    () {return ChannelStart;   }
116   int getCollectiveManagerStart() {return CMgrStart;}
117   void setNodeStart      (int n) {NodeStart       = n;}
118   void setHCAStart       (int n) {HCAStart        = n;}
119   void setDMAchannelStart(int n) {DMAchannelStart = n;}
120   void setSwitchStart    (int n) {SwitchStart     = n;}
121   void setVCStart        (int n) {VCStart         = n;}
122   void setChannelStart   (int n) {ChannelStart    = n;}
123   void setCollectiveManagerStart(int n) {CMgrStart= n;}
124   
125 };
126
127 class MachineParams {
128 public:
129         Config *config;
130         int procs;
131         int BGnodes;
132         
133         MachineParams() {}
134 };
135
136
137 PUPbytes(Config);
138
139 #endif