Changeset 820 for DCWoRMS/trunk/src/schedframe/resources/computing
- Timestamp:
- 02/04/13 04:16:13 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
DCWoRMS/trunk/src/schedframe/resources/computing/profiles/energy/EnergyExtension.java
r769 r820 17 17 import schedframe.resources.computing.profiles.energy.power.PowerProfile; 18 18 import schedframe.resources.computing.profiles.energy.power.ui.PowerInterface; 19 import schedframe.resources.computing.profiles.energy.thermal.ThermalInterfaceFactory; 20 import schedframe.resources.computing.profiles.energy.thermal.ThermalProfile; 21 import schedframe.resources.computing.profiles.energy.thermal.ui.ThermalInterface; 19 22 import schedframe.scheduling.manager.tasks.JobRegistryImpl; 20 23 … … 29 32 protected AirThroughputProfile airFlowProfile; 30 33 34 protected ThermalInterface thermalInterface; 35 protected ThermalProfile thermalProfile; 36 31 37 protected ComputingResource computingResource; 32 38 33 public EnergyExtension(PowerInterface powerInterface, PowerProfile pp) {34 this.powerInterface = powerInterface;35 this.powerProfile = pp;36 }37 39 38 public EnergyExtension(PowerInterface powerInterface, PowerProfile powerProfile, 39 AirThroughputInterface airFlowInterface, AirThroughputProfile airFlowProfile) { 40 super(); 41 this.powerInterface = powerInterface; 40 public EnergyExtension(ComputingResource computingResource, PowerInterface powerInterface, PowerProfile powerProfile) { 42 41 this.powerProfile = powerProfile; 43 this.airFlowInterface = airFlowInterface; 44 this.airFlowProfile = airFlowProfile; 42 this.powerInterface = PowerInterfaceFactory.createPowerInterface(computingResource, powerProfile); 45 43 } 46 44 … … 53 51 this.airFlowProfile = airFlowProfile; 54 52 this.airFlowInterface = AirThroughputInterfaceFactory.createAirThroughputInterface(computingResource, airFlowProfile); 53 } 54 55 public EnergyExtension(ComputingResource computingResource, PowerProfile powerProfile, 56 AirThroughputProfile airFlowProfile, ThermalProfile thermalProfile) { 57 super(); 58 this.computingResource = computingResource; 59 this.powerProfile = powerProfile; 60 this.powerInterface = PowerInterfaceFactory.createPowerInterface(computingResource, powerProfile); 61 this.airFlowProfile = airFlowProfile; 62 this.airFlowInterface = AirThroughputInterfaceFactory.createAirThroughputInterface(computingResource, airFlowProfile); 63 this.thermalProfile = thermalProfile; 64 this.thermalInterface = ThermalInterfaceFactory.createThermalInterface(computingResource, thermalProfile); 55 65 } 56 66 … … 67 77 else if(event.getType().getName().equals(EnergyEventType.TASK_FINISHED.getName())) 68 78 return true; 69 70 if(airFlowProfile == null)71 return false;79 else if(event.getType().getName().equals(EnergyEventType.RESOURCE_UTILIZATION_CHANGED.getName())) 80 return true; 81 72 82 if(event.getType().getName().equals(EnergyEventType.AIRFLOW_STATE_CHANGED.getName())) 73 83 return true; … … 77 87 78 88 public void handleEvent(Event event) { 89 79 90 EnergyEvent enEvent = (EnergyEvent)event; 80 91 double power = 0; 81 switch (enEvent.getType()) { 82 83 case POWER_STATE_CHANGED: 84 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource); 85 /*if(computingResource instanceof ComputingNode){ 86 ComputingNode node = (ComputingNode)computingResource; 87 if(event.getData() instanceof PowerState){ 88 PowerState newState = (PowerState)event.getData(); 89 if(newState == PowerState.ON) { 90 addToPowerUsageHistory(power+node.getPowerInterface().START_COST); 91 addToPowerUsageHistory(DateTimeUtils.currentTimeMillis()+node.getPowerInterface().START_TIME, power); 92 }else if(newState == PowerState.OFF){ 93 addToPowerUsageHistory(power+node.getPowerInterface().SHUTDOWN_COST); 94 addToPowerUsageHistory(DateTimeUtils.currentTimeMillis()+node.getPowerInterface().SHUTDOWN_TIME, power); 92 double temperature = 0; 93 try{ 94 switch (enEvent.getType()) { 95 96 case POWER_STATE_CHANGED: 97 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource); 98 /*if(computingResource instanceof ComputingNode){ 99 ComputingNode node = (ComputingNode)computingResource; 100 if(event.getData() instanceof PowerState){ 101 PowerState newState = (PowerState)event.getData(); 102 if(newState == PowerState.ON) { 103 addToPowerUsageHistory(power+node.getPowerInterface().START_COST); 104 addToPowerUsageHistory(DateTimeUtils.currentTimeMillis() + node.getPowerInterface().START_TIME, power); 105 }else if(newState == PowerState.OFF){ 106 addToPowerUsageHistory(power+node.getPowerInterface().SHUTDOWN_COST); 107 addToPowerUsageHistory(DateTimeUtils.currentTimeMillis() + node.getPowerInterface().SHUTDOWN_TIME, power); 108 } 95 109 } 96 110 } 111 else*/ powerProfile.addToPowerUsageHistory(power); 112 break; 113 114 case FREQUENCY_CHANGED: 115 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource); 116 powerProfile.addToPowerUsageHistory(power); 117 temperature = powerProfile.getEnergyEstimationPlugin().estimateTemperature(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource); 118 thermalProfile.addToTemperatureHistory(temperature); 119 break; 120 121 case TASK_STARTED: 122 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource); 123 powerProfile.addToPowerUsageHistory(power); 124 temperature = powerProfile.getEnergyEstimationPlugin().estimateTemperature(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource); 125 thermalProfile.addToTemperatureHistory(temperature); 126 break; 127 128 case TASK_FINISHED: 129 //System.out.println(this.resource.getName() + " - ENERGY EXTENSION: TASK FINISHED"); 130 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource); 131 //System.out.println(this.resource.getName() + " - ESTIMATED ENERGY:" + power); 132 powerProfile.addToPowerUsageHistory(power); 133 temperature = powerProfile.getEnergyEstimationPlugin().estimateTemperature(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource); 134 thermalProfile.addToTemperatureHistory(temperature); 135 break; 136 137 case RESOURCE_UTILIZATION_CHANGED: 138 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource); 139 powerProfile.addToPowerUsageHistory(power); 140 temperature = powerProfile.getEnergyEstimationPlugin().estimateTemperature(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource); 141 thermalProfile.addToTemperatureHistory(temperature); 142 break; 143 144 case AIRFLOW_STATE_CHANGED: 145 double airFlow = powerProfile.getEnergyEstimationPlugin().estimateAirThroughput(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource); 146 airFlowProfile.addToPowerUsageHistory(airFlow); 147 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource); 148 powerProfile.addToPowerUsageHistory(power); 149 temperature = powerProfile.getEnergyEstimationPlugin().estimateTemperature(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource); 150 thermalProfile.addToTemperatureHistory(temperature); 151 break; 97 152 } 98 else*/ powerProfile.addToPowerUsageHistory(power); 99 break; 153 }catch(Exception e){ 100 154 101 case FREQUENCY_CHANGED:102 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource);103 powerProfile.addToPowerUsageHistory(power);104 break;105 106 case TASK_STARTED:107 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource);108 powerProfile.addToPowerUsageHistory(power);109 break;110 111 case TASK_FINISHED:112 //System.out.println(this.resource.getName() + " - ENERGY EXTENSION: TASK FINISHED");113 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource);114 //System.out.println(this.resource.getName() + " - ESTIMATED ENERGY:" + power);115 powerProfile.addToPowerUsageHistory(power);116 break;117 case AIRFLOW_STATE_CHANGED:118 System.out.println("=====" + computingResource.getName());119 double airFlow = powerProfile.getEnergyEstimationPlugin().estimateAirThroughput(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource);120 airFlowProfile.addToPowerUsageHistory(airFlow);121 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(enEvent, new JobRegistryImpl(computingResource.getName()), computingResource);122 powerProfile.addToPowerUsageHistory(power);123 break;124 155 } 125 156 } … … 156 187 return airFlowProfile; 157 188 } 189 190 public ThermalProfile getThermalProfile() { 191 return thermalProfile; 192 } 193 194 public ThermalInterface getThermalInterface() { 195 return thermalInterface; 196 } 158 197 159 198 }
Note: See TracChangeset
for help on using the changeset viewer.