Changeset 1312 for DCWoRMS/branches/coolemall/src/test/thermal
- Timestamp:
- 03/21/14 15:43:32 (11 years ago)
- Location:
- DCWoRMS/branches/coolemall/src/test/thermal/recs
- Files:
-
- 3 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
DCWoRMS/branches/coolemall/src/test/thermal/recs/experiment1.properties
r1301 r1312 6 6 # and swf file, which name is declared by readscenario.workloadfilename parameter. 7 7 # Swf file must be placed in readscenario.inputfolder directory. 8 readscenario.workloadfilename=src/test/thermal/recs/workload _test.swf8 readscenario.workloadfilename=src/test/thermal/recs/workload70.swf 9 9 10 10 # Choose directory where all result files should be placed. … … 17 17 18 18 # Resource utilization chart - only for processors 19 creatediagrams.resutilization=Node;DataCenter19 #creatediagrams.resutilization=Node;DataCenter 20 20 21 21 # Power usage chart - for computing nodes and processors -
DCWoRMS/branches/coolemall/src/test/thermal/recs/plugins/energy/ThermalConstants.java
r1301 r1312 3 3 public class ThermalConstants { 4 4 5 public static double tin = 0; 5 /* 6 * v1. Hongyang Sun, 21/03/2014. 7 * 8 * This package is created for the thermal-aware scheduling policies designed in CoolEmAll (www.cooemall.eu). 9 * Details of these policies and experimental results can be found in deliverable D4.6 on the project website. 10 * 11 * The setting and the temperature estimation is for a CoolEmAll RECS with 18 nodes and the following layout: 12 * | 10 01 | 13 * | 11 02 | 14 * | 12 03 | 15 * | 13 04 | 16 * | 14 05 | 17 * | 15 06 | 18 * | 16 07 | 19 * | 17 08 | 20 * | 18 09 | 21 * where node i and i+9 share the same outlet and inlet for i = 1..9. 22 * 23 * The thermal-aware scheduling plugins (Coolest, MaxTempOpt and TempIncrOpt) are implemented in the version 24 * of the simulator dated 2014 March. In this version, 25 * (1). The power estimation of a node is guaranteed to be correct upon each invocation of the scheduler. 26 * (2). The temperature, however, may not be up to date, so one should always derive temperature from power. 27 * (3). If each invocation of the scheduler schedules several jobs, the power (and temperature) is not 28 * updated between job assignments. So one should always keep track of the power (and temperature) 29 * changes locally in this case. 30 */ 31 32 public static double tin = 25; 6 33 public static double Q = 0.0056085; 7 34 public static double C = 1004; … … 11 38 12 39 public static double fanPower = 6; 40 41 // calculate the outlet temperature, given the power1 on the inlet node and power2 on the outlet node. 42 public static double calculateOutletTemp(double power1, double power2){ 43 double tout = tin + delta1 * (power1/(Q * C * ro)) + delta2 * (power2/(Q * C * ro)); 44 return tout; 45 } 13 46 } -
DCWoRMS/branches/coolemall/src/test/thermal/recs/plugins/scheduling/RecsExclusivenessCoolestSP.java
r1301 r1312 30 30 import schedframe.scheduling.manager.resources.ResourceManager; 31 31 import schedframe.scheduling.manager.tasks.JobRegistry; 32 import schedframe.scheduling.manager.tasks.JobRegistryImpl; 32 33 import schedframe.scheduling.plan.SchedulingPlanInterface; 33 34 import schedframe.scheduling.plan.impl.SchedulingPlan; … … 36 37 import schedframe.scheduling.queue.TaskQueueList; 37 38 import schedframe.scheduling.tasks.TaskInterface; 39 import test.thermal.recs.plugins.energy.ThermalConstants; 38 40 import test.thermal.recs.utils.AppType; 39 41 … … 46 48 private ResourceBundle timeBundle; 47 49 50 // virtual nodes are to keep track of the intermediate power and temperature between job assignments 51 private List<VirtualNode> virtualNodes = new ArrayList<VirtualNode>(); 52 private boolean firstCall = true; 53 48 54 public SchedulingPlanInterface<?> schedule(SchedulingEvent event, TaskQueueList queues, JobRegistry jobRegistry, 49 55 ResourceManager resManager, ModuleList modules) { 50 56 51 57 ClusterResourceManager resourceManager = (ClusterResourceManager) resManager; 52 58 SchedulingPlan plan = new SchedulingPlan(); 59 60 List<Node> nodes = resourceManager.getNodes(); 61 62 // create the virtualNodes on the first scheduling call 63 if (firstCall){ 64 65 VirtualNode dummyVN = new VirtualNode(0); 66 virtualNodes.add(dummyVN); 67 68 int numNodes = nodes.size(); 69 for (int i = 1; i <= numNodes; i++){ 70 VirtualNode vn = new VirtualNode(i); 71 virtualNodes.add(vn); 72 } 73 firstCall = false; 74 } 75 76 // update the power of the virtual nodes 77 for (Node node : nodes){ 78 double power = node.getPowerInterface().getRecentPowerUsage().getValue(); 79 int nodeId = Integer.parseInt(node.getName().split("_")[1]); 80 virtualNodes.get(nodeId).setPower(power); 81 } 82 83 // update the temperature of the virtual nodes 84 for (int i = 1; i <= 9; i++){ 85 VirtualNode vn1 = virtualNodes.get(i+9); 86 VirtualNode vn2 = virtualNodes.get(i); 87 88 double power1 = vn1.getPower(); 89 double power2 = vn2.getPower(); 90 91 double tout = ThermalConstants.calculateOutletTemp(power1, power2); 92 vn1.setTemperature(tout); 93 vn2.setTemperature(tout); 94 } 95 53 96 // choose the events types to serve. 54 97 // Different actions for different events are possible. … … 87 130 Collections.shuffle(nodes); 88 131 Collections.sort(nodes, new TemperatureComparator(task)); 89 132 /* 133 System.out.println("*************************"); 134 System.out.println("Assigning task " + task.getJobId()); 135 for (Node node : nodes) { 136 int nodeId = Integer.parseInt(node.getName().split("_")[1]); 137 double node_power = node.getPowerInterface().getRecentPowerUsage().getValue(); 138 double node_temp = node.getThermalInterface().getRecentTemperature().getValue(); 139 double vn_power = virtualNodes.get(nodeId).getPower(); 140 double vn_temp = virtualNodes.get(nodeId).getTemperature(); 141 System.out.println(node.getName() + ": node_power = " + node_power + " ; node_temp = " + node_temp + " ; vn_power = " + vn_power + " ; vn_temp = " + vn_temp); 142 } 143 System.out.println("*************************"); 144 */ 90 145 for (Node node : nodes) { 91 146 int cpuRequest; … … 138 193 pe.addAll(choosenResources); 139 194 map.put(StandardResourceUnitName.PE, pe); 195 196 // update the power and temperature of the virtualNode corresponding to the node 197 int nodeId = Integer.parseInt(node.getName().split("_")[1]); 198 VirtualNode vn = virtualNodes.get(nodeId); 199 200 // power update 201 double extraPower = 0; 202 try{ 203 extraPower = Math.abs(getMeasuredPower(createQuery(task, node)) - node.getPowerInterface().getPowerConsumption(StandardPowerStateName.ON)); 204 } catch (FileNotFoundException e) { 205 206 } catch (IOException e) { 207 208 } catch (MissingResourceException e){ 209 210 } catch (NoSuchFieldException e) { 211 212 } 213 vn.setPower(vn.getPower() + extraPower); 214 215 // temperature update 216 double delta = 1; 217 VirtualNode vn2; 218 if (nodeId >= 1 && nodeId <= 9){ 219 delta = ThermalConstants.delta2; 220 vn2 = virtualNodes.get(nodeId + 9); 221 } 222 else{ 223 delta = ThermalConstants.delta1; 224 vn2 = virtualNodes.get(nodeId - 9); 225 } 226 double extraTemp = delta * (extraPower/(ThermalConstants.Q * ThermalConstants.C * ThermalConstants.ro)); 227 vn.setTemperature(vn.getTemperature() + extraTemp); 228 vn2.setTemperature(vn2.getTemperature() + extraTemp); 229 140 230 return map; 141 142 231 } 143 232 } … … 183 272 } 184 273 185 public int compare(Node node1, Node node2){ 186 double node1Temp = node1.getThermalInterface().getRecentTemperature().getValue(); 187 double node2Temp = node2.getThermalInterface().getRecentTemperature().getValue(); 274 public int compare(Node node1, Node node2){ 275 276 int id1 = Integer.parseInt(node1.getName().split("_")[1]); 277 int id2 = Integer.parseInt(node2.getName().split("_")[1]); 278 279 double node1Temp = virtualNodes.get(id1).getTemperature(); 280 double node2Temp = virtualNodes.get(id2).getTemperature(); 188 281 189 282 if (node1Temp > node2Temp) -
DCWoRMS/branches/coolemall/src/test/thermal/recs/plugins/scheduling/RecsExclusivenessMaxTempOptSP.java
r1301 r1312 47 47 private ResourceBundle timeBundle; 48 48 49 // virtual nodes are to keep track of the intermediate power and temperature between job assignments 50 private List<VirtualNode> virtualNodes = new ArrayList<VirtualNode>(); 51 private boolean firstCall = true; 52 49 53 public SchedulingPlanInterface<?> schedule(SchedulingEvent event, TaskQueueList queues, JobRegistry jobRegistry, 50 54 ResourceManager resManager, ModuleList modules) { … … 52 56 ClusterResourceManager resourceManager = (ClusterResourceManager) resManager; 53 57 SchedulingPlan plan = new SchedulingPlan(); 58 59 List<Node> nodes = resourceManager.getNodes(); 60 61 // create the virtualNodes on the first scheduling call 62 if (firstCall){ 63 64 VirtualNode dummyVN = new VirtualNode(0); 65 virtualNodes.add(dummyVN); 66 67 int numNodes = nodes.size(); 68 for (int i = 1; i <= numNodes; i++){ 69 VirtualNode vn = new VirtualNode(i); 70 virtualNodes.add(vn); 71 } 72 firstCall = false; 73 } 74 75 // update the power of the virtual nodes 76 for (Node node : nodes){ 77 double power = node.getPowerInterface().getRecentPowerUsage().getValue(); 78 int nodeId = Integer.parseInt(node.getName().split("_")[1]); 79 virtualNodes.get(nodeId).setPower(power); 80 } 81 82 // update the temperature of the virtual nodes 83 for (int i = 1; i <= 9; i++){ 84 VirtualNode vn1 = virtualNodes.get(i+9); 85 VirtualNode vn2 = virtualNodes.get(i); 86 87 double power1 = vn1.getPower(); 88 double power2 = vn2.getPower(); 89 90 double tout = ThermalConstants.calculateOutletTemp(power1, power2); 91 vn1.setTemperature(tout); 92 vn2.setTemperature(tout); 93 } 94 54 95 // choose the events types to serve. 55 96 // Different actions for different events are possible. … … 138 179 pe.addAll(choosenResources); 139 180 map.put(StandardResourceUnitName.PE, pe); 181 182 // update the power and temperature of the virtualNode corresponding to the node 183 int nodeId = Integer.parseInt(node.getName().split("_")[1]); 184 VirtualNode vn = virtualNodes.get(nodeId); 185 186 // power update 187 double extraPower = 0; 188 try{ 189 extraPower = Math.abs(getMeasuredPower(createQuery(task, node)) - node.getPowerInterface().getPowerConsumption(StandardPowerStateName.ON)); 190 } catch (FileNotFoundException e) { 191 192 } catch (IOException e) { 193 194 } catch (MissingResourceException e){ 195 196 } catch (NoSuchFieldException e) { 197 198 } 199 vn.setPower(vn.getPower() + extraPower); 200 201 // temperature update 202 double delta = 1; 203 VirtualNode vn2; 204 if (nodeId >= 1 && nodeId <= 9){ 205 delta = ThermalConstants.delta2; 206 vn2 = virtualNodes.get(nodeId + 9); 207 } 208 else{ 209 delta = ThermalConstants.delta1; 210 vn2 = virtualNodes.get(nodeId - 9); 211 } 212 double extraTemp = delta * (extraPower/(ThermalConstants.Q * ThermalConstants.C * ThermalConstants.ro)); 213 vn.setTemperature(vn.getTemperature() + extraTemp); 214 vn2.setTemperature(vn2.getTemperature() + extraTemp); 215 140 216 return map; 141 217 … … 179 255 private TaskInterface<?> task; 180 256 181 double Q = ThermalConstants.Q;182 double C = ThermalConstants.C;183 double delta1 = ThermalConstants.delta1;184 double delta2 = ThermalConstants.delta2;185 double ro = ThermalConstants.ro;186 187 257 public TemperatureComparator(TaskInterface<?> task){ 188 258 this.task = task; … … 190 260 191 261 public int compare(Node node1, Node node2){ 192 double currentNode1Temp = node1.getThermalInterface().getRecentTemperature().getValue(); 193 double currentNode2Temp = node2.getThermalInterface().getRecentTemperature().getValue(); 262 263 int id1 = Integer.parseInt(node1.getName().split("_")[1]); 264 int id2 = Integer.parseInt(node2.getName().split("_")[1]); 265 266 double currentNode1Temp = virtualNodes.get(id1).getTemperature(); 267 double currentNode2Temp = virtualNodes.get(id2).getTemperature(); 194 268 195 269 double power1 = 0; … … 208 282 } 209 283 210 Integer id1 = Integer.parseInt(node1.getName().split("_")[1]);211 Integer id2 = Integer.parseInt(node2.getName().split("_")[1]);212 213 284 double deltaOne = 1, deltaTwo = 1; 214 if (id1 >= 0 && id1 <= 8) // outlet215 deltaOne = delta2;216 else if (id1 >= 9 && id1 <= 17) // inlet217 deltaOne = delta1;218 if (id2 >= 0 && id2 <= 8) // outlet219 deltaTwo = delta2;220 else if (id2 >= 9 && id2 <= 17) // inlet221 deltaTwo = delta1;222 223 double afterNode1Temp = currentNode1Temp + deltaOne * (power1/( Q * C *ro));224 double afterNode2Temp = currentNode2Temp + deltaTwo * (power2/( Q * C *ro));285 if (id1 >= 1 && id1 <= 9) // outlet 286 deltaOne = ThermalConstants.delta2; 287 else if (id1 >= 10 && id1 <= 18) // inlet 288 deltaOne = ThermalConstants.delta1; 289 if (id2 >= 1 && id2 <= 9) // outlet 290 deltaTwo = ThermalConstants.delta2; 291 else if (id2 >= 10 && id2 <= 18) // inlet 292 deltaTwo = ThermalConstants.delta1; 293 294 double afterNode1Temp = currentNode1Temp + deltaOne * (power1/(ThermalConstants.Q * ThermalConstants.C * ThermalConstants.ro)); 295 double afterNode2Temp = currentNode2Temp + deltaTwo * (power2/(ThermalConstants.Q * ThermalConstants.C * ThermalConstants.ro)); 225 296 226 297 if (afterNode1Temp > afterNode2Temp) -
DCWoRMS/branches/coolemall/src/test/thermal/recs/plugins/scheduling/RecsExclusivenessTempIncrOptSP.java
r1301 r1312 178 178 private TaskInterface<?> task; 179 179 180 double Q = ThermalConstants.Q;181 double C = ThermalConstants.C;182 double delta1 = ThermalConstants.delta1;183 double delta2 = ThermalConstants.delta2;184 double ro = ThermalConstants.ro;185 186 180 public TemperatureComparator(TaskInterface<?> task){ 187 181 this.task = task; … … 192 186 double power1 = 0; 193 187 double power2 = 0; 194 double time1 = 0;195 double time2 = 0;196 188 try{ 197 189 power1 = Math.abs(getMeasuredPower(createQuery(task, node1)) - node1.getPowerInterface().getPowerConsumption(StandardPowerStateName.ON)); 198 190 power2 = Math.abs(getMeasuredPower(createQuery(task, node2)) - node2.getPowerInterface().getPowerConsumption(StandardPowerStateName.ON)); 199 time1 = getMeasuredTime(createQuery(task, node1));200 time2 = getMeasuredTime(createQuery(task, node2));201 191 } catch (FileNotFoundException e) { 202 192 … … 213 203 214 204 double deltaOne = 1, deltaTwo = 1; 215 if (id1 >= 0 && id1 <= 8) // outlet216 deltaOne = delta2;217 else if (id1 >= 9 && id1 <= 17) // inlet218 deltaOne = delta1;219 if (id2 >= 0 && id2 <= 8) // outlet220 deltaTwo = delta2;221 else if (id2 >= 9 && id2 <= 17) // inlet222 deltaTwo = delta1;223 224 double extraNode1Temp = deltaOne * (power1/( Q * C * ro)) * time1;225 double extraNode2Temp = deltaTwo * (power2/( Q * C * ro)) * time2;205 if (id1 >= 1 && id1 <= 9) // outlet 206 deltaOne = ThermalConstants.delta2; 207 else if (id1 >= 10 && id1 <= 18) // inlet 208 deltaOne = ThermalConstants.delta1; 209 if (id2 >= 1 && id2 <= 9) // outlet 210 deltaTwo = ThermalConstants.delta2; 211 else if (id2 >= 10 && id2 <= 18) // inlet 212 deltaTwo = ThermalConstants.delta1; 213 214 double extraNode1Temp = deltaOne * (power1/(ThermalConstants.Q * ThermalConstants.C * ThermalConstants.ro)); 215 double extraNode2Temp = deltaTwo * (power2/(ThermalConstants.Q * ThermalConstants.C * ThermalConstants.ro)); 226 216 227 217 if (extraNode1Temp > extraNode2Temp) -
DCWoRMS/branches/coolemall/src/test/thermal/recs/resources1.xml
r1301 r1312 20 20 <powerProfile> 21 21 <energyEstimationPlugin> 22 <name>test.thermal.recs.plugins.energy. FanEEP</name>22 <name>test.thermal.recs.plugins.energy.RecsFanEEP</name> 23 23 </energyEstimationPlugin> 24 24 </powerProfile> … … 29 29 <powerProfile> 30 30 <energyEstimationPlugin> 31 <name>test.thermal.recs.plugins.energy. FanEEP</name>31 <name>test.thermal.recs.plugins.energy.RecsFanEEP</name> 32 32 </energyEstimationPlugin> 33 33 </powerProfile> … … 38 38 <powerProfile> 39 39 <energyEstimationPlugin> 40 <name>test.thermal.recs.plugins.energy. FanEEP</name>40 <name>test.thermal.recs.plugins.energy.RecsFanEEP</name> 41 41 </energyEstimationPlugin> 42 42 </powerProfile> … … 47 47 <powerProfile> 48 48 <energyEstimationPlugin> 49 <name>test.thermal.recs.plugins.energy. FanEEP</name>49 <name>test.thermal.recs.plugins.energy.RecsFanEEP</name> 50 50 </energyEstimationPlugin> 51 51 </powerProfile> … … 56 56 <powerProfile> 57 57 <energyEstimationPlugin> 58 <name>test.thermal.recs.plugins.energy. FanEEP</name>58 <name>test.thermal.recs.plugins.energy.RecsFanEEP</name> 59 59 </energyEstimationPlugin> 60 60 </powerProfile> … … 65 65 <powerProfile> 66 66 <energyEstimationPlugin> 67 <name>test.thermal.recs.plugins.energy. FanEEP</name>67 <name>test.thermal.recs.plugins.energy.RecsFanEEP</name> 68 68 </energyEstimationPlugin> 69 69 </powerProfile> … … 74 74 <powerProfile> 75 75 <energyEstimationPlugin> 76 <name>test.thermal.recs.plugins.energy. FanEEP</name>76 <name>test.thermal.recs.plugins.energy.RecsFanEEP</name> 77 77 </energyEstimationPlugin> 78 78 </powerProfile> … … 83 83 <powerProfile> 84 84 <energyEstimationPlugin> 85 <name>test.thermal.recs.plugins.energy. FanEEP</name>85 <name>test.thermal.recs.plugins.energy.RecsFanEEP</name> 86 86 </energyEstimationPlugin> 87 87 </powerProfile> … … 92 92 <powerProfile> 93 93 <energyEstimationPlugin> 94 <name>test.thermal.recs.plugins.energy. FanEEP</name>94 <name>test.thermal.recs.plugins.energy.RecsFanEEP</name> 95 95 </energyEstimationPlugin> 96 96 </powerProfile> … … 101 101 <powerProfile> 102 102 <energyEstimationPlugin> 103 <name>test.thermal.recs.plugins.energy. FanEEP</name>103 <name>test.thermal.recs.plugins.energy.RecsFanEEP</name> 104 104 </energyEstimationPlugin> 105 105 </powerProfile> … … 112 112 <powerProfile> 113 113 <energyEstimationPlugin> 114 <name>test.thermal.recs.plugins.energy. FanEEP</name>114 <name>test.thermal.recs.plugins.energy.RecsFanEEP</name> 115 115 </energyEstimationPlugin> 116 116 </powerProfile> … … 123 123 <powerProfile> 124 124 <energyEstimationPlugin> 125 <name>test.thermal.recs.plugins.energy. FanEEP</name>125 <name>test.thermal.recs.plugins.energy.RecsFanEEP</name> 126 126 </energyEstimationPlugin> 127 127 </powerProfile> … … 134 134 <powerProfile> 135 135 <energyEstimationPlugin> 136 <name>test.thermal.recs.plugins.energy. FanEEP</name>136 <name>test.thermal.recs.plugins.energy.RecsFanEEP</name> 137 137 </energyEstimationPlugin> 138 138 </powerProfile> … … 145 145 <powerProfile> 146 146 <energyEstimationPlugin> 147 <name>test.thermal.recs.plugins.energy. FanEEP</name>147 <name>test.thermal.recs.plugins.energy.RecsFanEEP</name> 148 148 </energyEstimationPlugin> 149 149 </powerProfile> … … 156 156 <powerProfile> 157 157 <energyEstimationPlugin> 158 <name>test.thermal.recs.plugins.energy. FanEEP</name>158 <name>test.thermal.recs.plugins.energy.RecsFanEEP</name> 159 159 </energyEstimationPlugin> 160 160 </powerProfile> … … 167 167 <powerProfile> 168 168 <energyEstimationPlugin> 169 <name>test.thermal.recs.plugins.energy. FanEEP</name>169 <name>test.thermal.recs.plugins.energy.RecsFanEEP</name> 170 170 </energyEstimationPlugin> 171 171 </powerProfile> … … 178 178 <powerProfile> 179 179 <energyEstimationPlugin> 180 <name>test.thermal.recs.plugins.energy. FanEEP</name>180 <name>test.thermal.recs.plugins.energy.RecsFanEEP</name> 181 181 </energyEstimationPlugin> 182 182 </powerProfile> … … 189 189 <powerProfile> 190 190 <energyEstimationPlugin> 191 <name>test.thermal.recs.plugins.energy. FanEEP</name>191 <name>test.thermal.recs.plugins.energy.RecsFanEEP</name> 192 192 </energyEstimationPlugin> 193 193 </powerProfile> … … 206 206 <powerProfile> 207 207 <energyEstimationPlugin> 208 <name>test.thermal.recs.plugins.energy. NodeEEP</name>208 <name>test.thermal.recs.plugins.energy.RecsNodeEEP</name> 209 209 </energyEstimationPlugin> 210 210 <powerStates> … … 394 394 <powerProfile> 395 395 <energyEstimationPlugin> 396 <name>test.thermal.recs.plugins.energy. NodeEEP</name>396 <name>test.thermal.recs.plugins.energy.RecsNodeEEP</name> 397 397 </energyEstimationPlugin> 398 398 <powerStates> … … 452 452 <powerProfile> 453 453 <energyEstimationPlugin> 454 <name>test.thermal.recs.plugins.energy. NodeEEP</name>454 <name>test.thermal.recs.plugins.energy.RecsNodeEEP</name> 455 455 </energyEstimationPlugin> 456 456 <powerStates> … … 570 570 <!-- Definition of scheduling plugin at cluster level --> 571 571 <schedulingPlugin> 572 <name>test.thermal.recs.plugins.scheduling.RecsExclusiveness TempIncrOptSP</name>572 <name>test.thermal.recs.plugins.scheduling.RecsExclusivenessCoolestSP</name> 573 573 </schedulingPlugin> 574 574 <!-- Reference to managed resources - cluster manages resources belonging to the defined data center --> -
DCWoRMS/branches/coolemall/src/test/thermal/recs/workload_test.swf
r1301 r1312 12 12 ;PUSpeed: 1 13 13 ;StartTime: Thu Jan 15 10:00:00 CET 2009 14 0 3486 -1 11604 1 -1 -1 1 11604 -1 -1 -1 -1 -1 -1 -1 -1 -1 15 1 7045 -1 12814 2 -1 -1 2 12814 -1 -1 -1 -1 -1 -1 -1 -1 -1 16 2 10575 -1 14575 3 -1 -1 3 14575 -1 -1 -1 -1 -1 -1 -1 -1 -1 17 3 14205 -1 13197 1 -1 -1 1 13197 -1 -1 -1 -1 -1 -1 -1 -1 -1 18 4 17858 -1 13352 1 -1 -1 1 13352 -1 -1 -1 -1 -1 -1 -1 -1 -1 19 5 21413 -1 13214 1 -1 -1 1 13214 -1 -1 -1 -1 -1 -1 -1 -1 -1 20 6 24981 -1 12162 1 -1 -1 1 12162 -1 -1 -1 -1 -1 -1 -1 -1 -1 21 7 28628 -1 14534 4 -1 -1 4 14534 -1 -1 -1 -1 -1 -1 -1 -1 -1 22 8 32227 -1 14680 3 -1 -1 3 14680 -1 -1 -1 -1 -1 -1 -1 -1 -1 23 9 35816 -1 10939 1 -1 -1 1 10939 -1 -1 -1 -1 -1 -1 -1 -1 -1 14 00 0 -1 11604 1 -1 -1 1 11604 -1 -1 -1 -1 -1 -1 -1 -1 -1 15 01 0 -1 12814 2 -1 -1 2 12814 -1 -1 -1 -1 -1 -1 -1 -1 -1 16 02 0 -1 14575 3 -1 -1 3 14575 -1 -1 -1 -1 -1 -1 -1 -1 -1 17 03 0 -1 11604 1 -1 -1 1 11604 -1 -1 -1 -1 -1 -1 -1 -1 -1 18 04 0 -1 12814 2 -1 -1 2 12814 -1 -1 -1 -1 -1 -1 -1 -1 -1 19 05 0 -1 14575 3 -1 -1 3 14575 -1 -1 -1 -1 -1 -1 -1 -1 -1 20 06 0 -1 11604 1 -1 -1 1 11604 -1 -1 -1 -1 -1 -1 -1 -1 -1 21 07 0 -1 12814 2 -1 -1 2 12814 -1 -1 -1 -1 -1 -1 -1 -1 -1 22 08 0 -1 14575 3 -1 -1 3 14575 -1 -1 -1 -1 -1 -1 -1 -1 -1 23 09 0 -1 11604 1 -1 -1 1 11604 -1 -1 -1 -1 -1 -1 -1 -1 -1 24 ;IDMapping: swfID:jobID:taskID 24 25 ;IDMapping: swfID:jobID:taskID 25 26 ; 0:0:0, 1:1:0, 2:2:0, 3:3:0, 4:4:0, 5:5:0, 6:6:0, 7:7:0, 8:8:0, 9:9:0,
Note: See TracChangeset
for help on using the changeset viewer.