Changeset 1415 for DCWoRMS/branches/coolemall/src/schedframe/resources
- Timestamp:
- 07/15/14 16:26:31 (11 years ago)
- Location:
- DCWoRMS/branches/coolemall/src/schedframe/resources
- Files:
-
- 1 added
- 1 deleted
- 17 edited
- 2 moved
Legend:
- Unmodified
- Added
- Removed
-
DCWoRMS/branches/coolemall/src/schedframe/resources/computing/ComputingResource.java
r1396 r1415 9 9 import java.util.Properties; 10 10 11 import schedframe.events.Event;12 11 import schedframe.events.EventHandler; 12 import schedframe.events.EventReason; 13 13 import schedframe.events.ResourceEventCommand; 14 import schedframe.events.scheduling.EventReason;15 14 import schedframe.events.scheduling.ResourceStateChangedEvent; 16 15 import schedframe.events.scheduling.SchedulingEvent; … … 21 20 import schedframe.resources.computing.extensions.Extension; 22 21 import schedframe.resources.computing.extensions.ExtensionListImpl; 23 import schedframe.resources.computing.profiles.energy. EnergyEvent;24 import schedframe.resources.computing.profiles.energy. EnergyEventType;22 import schedframe.resources.computing.profiles.energy.ResourceEvent; 23 import schedframe.resources.computing.profiles.energy.ResourceEventType; 25 24 import schedframe.resources.computing.profiles.energy.EnergyExtension; 26 25 import schedframe.resources.computing.profiles.load.LoadExtension; … … 117 116 } 118 117 119 private void triggerEventUp( Event event) {118 private void triggerEventUp(ResourceEvent event) { 120 119 if(parent != null) 121 120 parent.handleEvent(event); 122 121 } 123 122 124 public void handleEvent( Event event){123 public void handleEvent(ResourceEvent event){ 125 124 ResourceEventCommand rec = new ResourceEventCommand(this); 126 125 rec.execute(event); … … 227 226 class ComputingResourceEventHandler implements EventHandler{ 228 227 229 public void handleResourceEvent( Event event){228 public void handleResourceEvent(ResourceEvent event){ 230 229 if (extensionList != null) { 231 230 for (Extension extension: extensionList) { … … 254 253 //scheduler.sim_cancel(filter, null); 255 254 ResourceStateChangedEvent rscEvent = (ResourceStateChangedEvent) event; 256 EnergyEventType eeType = (EnergyEventType)rscEvent.getEventType();255 ResourceEventType reType = rscEvent.getResourceEventType(); 257 256 //scheduler.sendInternal(GridSimTags.SCHEDULE_NOW, DCWormsTags.UPDATE_PROCESSING, src); 258 switch( eeType){257 switch(reType){ 259 258 260 case RESOURCE_UTILIZATION_CHANGED: {259 case UTILIZATION_CHANGED: { 261 260 scheduler.sendInternal(GridSimTags.SCHEDULE_NOW, DCWormsTags.UPDATE_PROCESSING, src); 262 261 break; 263 262 } 264 case FREQUENCY_CHANGED: {263 case CPU_FREQUENCY_CHANGED: { 265 264 scheduler.sendInternal(GridSimTags.SCHEDULE_NOW, DCWormsTags.UPDATE_PROCESSING, src); 266 265 break; … … 286 285 } 287 286 ResourceEventCommand rec = new ResourceEventCommand(this); 288 EnergyEvent event = new EnergyEvent(EnergyEventType.AIRFLOW_STATE_CHANGED, "Resource controller");287 ResourceEvent event = new ResourceEvent(ResourceEventType.AIRFLOW_STATE_CHANGED, "Resource controller"); 289 288 event.setReason(EventReason.SIM_INIT); 290 289 rec.execute(event); 291 290 /*ResourceEventCommand*/ rec = new ResourceEventCommand(this); 292 /* EnergyEvent*/ event = new EnergyEvent(EnergyEventType.POWER_STATE_CHANGED, "Resource controller");291 /*ResourceEvent*/ event = new ResourceEvent(ResourceEventType.POWER_STATE_CHANGED, "Resource controller"); 293 292 event.setReason(EventReason.SIM_INIT); 294 293 rec.execute(event); 295 294 296 295 rec = new ResourceEventCommand(this); 297 event = new EnergyEvent(EnergyEventType.TEMPERATURE_CHANGED, "Resource controller");296 event = new ResourceEvent(ResourceEventType.TEMPERATURE_CHANGED, "Resource controller"); 298 297 event.setReason(EventReason.SIM_INIT); 299 298 rec.execute(event); … … 302 301 if(li != null){ 303 302 ResourceLoadCalendar rlc = li.getLoadCalendar(); 304 LinkedList<TimestampUtilization> l l= rlc.getLoadDistribution();305 for(TimestampUtilization tu: l l){306 DataCenterWorkloadSimulator.getEventManager().sendToResource(getFullName(), tu.getStartTime(), new EnergyEvent(EnergyEventType.RESOURCE_UTILIZATION_CHANGED, getFullName()));307 DataCenterWorkloadSimulator.getEventManager().sendToResource(getFullName(), tu.getEndTime(), new EnergyEvent(EnergyEventType.RESOURCE_UTILIZATION_CHANGED, getFullName()));303 LinkedList<TimestampUtilization> ld = rlc.getLoadDistribution(); 304 for(TimestampUtilization tu: ld){ 305 DataCenterWorkloadSimulator.getEventManager().sendToResource(getFullName(), tu.getStartTime(), new ResourceEvent(ResourceEventType.UTILIZATION_CHANGED, getFullName())); 306 DataCenterWorkloadSimulator.getEventManager().sendToResource(getFullName(), tu.getEndTime(), new ResourceEvent(ResourceEventType.UTILIZATION_CHANGED, getFullName())); 308 307 } 309 308 } -
DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/EnergyExtension.java
r1396 r1415 15 15 import schedframe.resources.computing.profiles.energy.power.PowerInterfaceFactory; 16 16 import schedframe.resources.computing.profiles.energy.power.PowerProfile; 17 import schedframe.resources.computing.profiles.energy.power.PowerStateName; 17 18 import schedframe.resources.computing.profiles.energy.power.ui.PowerInterface; 18 19 import schedframe.resources.computing.profiles.energy.thermal.ThermalInterfaceFactory; … … 110 111 if(powerProfile == null || powerProfile.getEnergyEstimationPlugin() == null) 111 112 return false; 112 if(event.getType().getName().equals( EnergyEventType.POWER_STATE_CHANGED.getName()))113 return true; 114 else if(event.getType().getName().equals( EnergyEventType.FREQUENCY_CHANGED.getName()))115 return true; 116 else if(event.getType().getName().equals( EnergyEventType.TASK_STARTED.getName()))117 return true; 118 else if(event.getType().getName().equals( EnergyEventType.TASK_FINISHED.getName()))119 return true; 120 else if(event.getType().getName().equals( EnergyEventType.RESOURCE_UTILIZATION_CHANGED.getName()))121 return true; 122 123 if(event.getType().getName().equals( EnergyEventType.AIRFLOW_STATE_CHANGED.getName()))124 return true; 125 if(event.getType().getName().equals( EnergyEventType.TEMPERATURE_CHANGED.getName()))113 if(event.getType().getName().equals(ResourceEventType.POWER_STATE_CHANGED.getName())) 114 return true; 115 else if(event.getType().getName().equals(ResourceEventType.CPU_FREQUENCY_CHANGED.getName())) 116 return true; 117 else if(event.getType().getName().equals(ResourceEventType.TASK_STARTED.getName())) 118 return true; 119 else if(event.getType().getName().equals(ResourceEventType.TASK_FINISHED.getName())) 120 return true; 121 else if(event.getType().getName().equals(ResourceEventType.UTILIZATION_CHANGED.getName())) 122 return true; 123 124 if(event.getType().getName().equals(ResourceEventType.AIRFLOW_STATE_CHANGED.getName())) 125 return true; 126 if(event.getType().getName().equals(ResourceEventType.TEMPERATURE_CHANGED.getName())) 126 127 return true; 127 128 … … 131 132 public void handleEvent(Event event) { 132 133 133 EnergyEvent enEvent = (EnergyEvent)event;134 ResourceEvent resEvent = (ResourceEvent)event; 134 135 double power = 0; 135 136 boolean status = false; 136 137 try{ 137 switch ( enEvent.getType()) {138 switch (resEvent.getType()) { 138 139 140 case UPDATE_POWER_STATE: 141 PowerStateName newPowerState = (PowerStateName) resEvent.getData(); 142 powerInterface.setPowerState(newPowerState); 143 break; 144 139 145 case POWER_STATE_CHANGED: 140 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption( enEvent, new JobRegistryImpl(resource.getFullName()), resource);141 status = powerProfile.addToPowerUsageHistory(power); 142 break; 143 144 case FREQUENCY_CHANGED:145 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption( enEvent, new JobRegistryImpl(resource.getFullName()), resource);146 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(resEvent, new JobRegistryImpl(resource.getFullName()), resource); 147 status = powerProfile.addToPowerUsageHistory(power); 148 break; 149 150 case CPU_FREQUENCY_CHANGED: 151 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(resEvent, new JobRegistryImpl(resource.getFullName()), resource); 146 152 status = powerProfile.addToPowerUsageHistory(power); 147 153 break; 148 154 149 155 case TASK_STARTED: 150 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption( enEvent, new JobRegistryImpl(resource.getFullName()), resource);156 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(resEvent, new JobRegistryImpl(resource.getFullName()), resource); 151 157 status = powerProfile.addToPowerUsageHistory(power); 152 158 break; 153 159 154 160 case TASK_FINISHED: 155 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption( enEvent, new JobRegistryImpl(resource.getFullName()), resource);156 status = powerProfile.addToPowerUsageHistory(power); 157 break; 158 159 case RESOURCE_UTILIZATION_CHANGED:160 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption( enEvent, new JobRegistryImpl(resource.getFullName()), resource);161 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(resEvent, new JobRegistryImpl(resource.getFullName()), resource); 162 status = powerProfile.addToPowerUsageHistory(power); 163 break; 164 165 case UTILIZATION_CHANGED: 166 power = powerProfile.getEnergyEstimationPlugin().estimatePowerConsumption(resEvent, new JobRegistryImpl(resource.getFullName()), resource); 161 167 status = powerProfile.addToPowerUsageHistory(power); 162 168 break; 163 169 164 170 case AIRFLOW_STATE_CHANGED: 165 double airflow = powerProfile.getEnergyEstimationPlugin().estimateAirflow( enEvent, new JobRegistryImpl(resource.getFullName()), resource);171 double airflow = powerProfile.getEnergyEstimationPlugin().estimateAirflow(resEvent, new JobRegistryImpl(resource.getFullName()), resource); 166 172 airflowProfile.addToAirFlowHistory(airflow); 167 173 break; 168 174 169 175 case TEMPERATURE_CHANGED: 170 double temperature = powerProfile.getEnergyEstimationPlugin().estimateTemperature( enEvent, new JobRegistryImpl(resource.getFullName()), resource);176 double temperature = powerProfile.getEnergyEstimationPlugin().estimateTemperature(resEvent, new JobRegistryImpl(resource.getFullName()), resource); 171 177 thermalProfile.addToTemperatureHistory(temperature); 172 178 break; … … 176 182 } 177 183 if(status){ 178 DataCenterWorkloadSimulator.getEventManager().sendToResources(resource.getType(), 0, new EnergyEvent(EnergyEventType.TEMPERATURE_CHANGED, resource.getFullName()));184 DataCenterWorkloadSimulator.getEventManager().sendToResources(resource.getType(), 0, new ResourceEvent(ResourceEventType.TEMPERATURE_CHANGED, resource.getFullName())); 179 185 } 180 186 } -
DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/ResourceEvent.java
r1320 r1415 2 2 3 3 import schedframe.events.Event; 4 import schedframe.events.EventReason; 4 5 import schedframe.events.EventType; 5 import schedframe.events.scheduling.EventReason;6 6 7 7 8 public class EnergyEvent implements Event{8 public class ResourceEvent implements Event{ 9 9 10 10 protected EventType type; 11 11 protected EventReason reason; 12 protected String source; 12 13 protected Object data; 13 protected String source;14 14 15 public EnergyEvent(EventType eventType, String source){15 public ResourceEvent(EventType eventType, String source){ 16 16 this.type = eventType; 17 17 this.source = source; … … 19 19 } 20 20 21 public EnergyEvent(EventType eventType, Object data, String source){21 public ResourceEvent(EventType eventType, Object data, String source){ 22 22 this.type = eventType; 23 23 this.data = data; … … 26 26 } 27 27 28 public EnergyEventType getType() {29 EnergyEventType enEventType = null;28 public ResourceEventType getType() { 29 ResourceEventType resEventType; 30 30 try{ 31 enEventType = (EnergyEventType)type;31 resEventType = (ResourceEventType)type; 32 32 } catch(Exception e){ 33 33 resEventType = null; 34 34 } 35 return enEventType; 36 37 } 38 39 public int getTag() { 40 return type.getTag(); 35 return resEventType; 41 36 } 42 37 -
DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/ResourceEventType.java
r1320 r1415 3 3 import schedframe.events.EventType; 4 4 5 public enum EnergyEventType implements EventType {5 public enum ResourceEventType implements EventType { 6 6 7 TASK_FINISHED(1), 8 TASK_FAILED(2), 9 TASK_CANCELED(4), 10 TASK_STARTED(8), 7 TASK_STARTED, 8 TASK_FINISHED, 11 9 12 TIMER(16), 10 POWER_STATE_CHANGED, 11 CPU_FREQUENCY_CHANGED, 12 AIRFLOW_STATE_CHANGED, 13 14 UTILIZATION_CHANGED, 15 16 TEMPERATURE_CHANGED, 17 18 UPDATE_POWER_STATE; 13 19 14 POWER_STATE_CHANGED(32),15 FREQUENCY_CHANGED(64),16 17 AIRFLOW_STATE_CHANGED(256),18 19 RESOURCE_FAILED(512),20 21 RESOURCE_UTILIZATION_CHANGED(1024),22 23 TEMPERATURE_CHANGED(2048)24 25 ;26 27 protected int tag;28 29 public int getTag() {30 return tag;31 }32 33 private EnergyEventType(int tag){34 this.tag = tag;35 }36 37 20 public String getName(){ 38 21 return toString(); -
DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/airthroughput/ui/ComputingResourceAirflowInterface.java
r1396 r1415 8 8 import schedframe.Parameters; 9 9 import schedframe.resources.computing.ComputingResource; 10 import schedframe.resources.computing.profiles.energy. EnergyEvent;11 import schedframe.resources.computing.profiles.energy. EnergyEventType;10 import schedframe.resources.computing.profiles.energy.ResourceEvent; 11 import schedframe.resources.computing.profiles.energy.ResourceEventType; 12 12 import schedframe.resources.computing.profiles.energy.airthroughput.AirflowValue; 13 13 import schedframe.resources.computing.profiles.energy.airthroughput.AirflowProfile; … … 37 37 38 38 //TO DO - notifications should be called for all resources starting form the lowest layer 39 resource.handleEvent(new EnergyEvent(EnergyEventType.AIRFLOW_STATE_CHANGED, resource.getFullName()));40 resource.handleEvent(new EnergyEvent(EnergyEventType.POWER_STATE_CHANGED, resource.getFullName()));39 resource.handleEvent(new ResourceEvent(ResourceEventType.AIRFLOW_STATE_CHANGED, resource.getFullName())); 40 resource.handleEvent(new ResourceEvent(ResourceEventType.POWER_STATE_CHANGED, resource.getFullName())); 41 41 return true; 42 42 } -
DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/StandardPowerStateName.java
r1396 r1415 8 8 SLEEP, 9 9 SUSPEND, 10 HIBERNATE; 10 HIBERNATE, 11 BOOT, 12 POWEROFF; 11 13 12 14 public String getLabel() { -
DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/plugin/EnergyEstimationPlugin.java
r1396 r1415 2 2 3 3 import schedframe.Plugin; 4 import schedframe.resources.computing.profiles.energy. EnergyEvent;4 import schedframe.resources.computing.profiles.energy.ResourceEvent; 5 5 import schedframe.resources.devices.PhysicalResource; 6 6 import schedframe.scheduling.manager.tasks.JobRegistry; … … 8 8 public interface EnergyEstimationPlugin extends Plugin { 9 9 10 public double estimatePowerConsumption( EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource);10 public double estimatePowerConsumption(ResourceEvent event, JobRegistry jobRegistry, PhysicalResource resource); 11 11 12 public double estimateAirflow( EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource);12 public double estimateAirflow(ResourceEvent event, JobRegistry jobRegistry, PhysicalResource resource); 13 13 14 public double estimateTemperature( EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource);14 public double estimateTemperature(ResourceEvent event, JobRegistry jobRegistry, PhysicalResource resource); 15 15 16 16 } -
DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/ui/ComputingResourcePowerInterface.java
r1396 r1415 9 9 import schedframe.resources.ResourceStatus; 10 10 import schedframe.resources.computing.ComputingResource; 11 import schedframe.resources.computing.profiles.energy. EnergyEvent;12 import schedframe.resources.computing.profiles.energy. EnergyEventType;11 import schedframe.resources.computing.profiles.energy.ResourceEvent; 12 import schedframe.resources.computing.profiles.energy.ResourceEventType; 13 13 import schedframe.resources.computing.profiles.energy.power.PowerProfile; 14 14 import schedframe.resources.computing.profiles.energy.power.PowerState; … … 49 49 } 50 50 //notifications from all levels 51 resource.handleEvent(new EnergyEvent(EnergyEventType.POWER_STATE_CHANGED, resource.getFullName()));51 resource.handleEvent(new ResourceEvent(ResourceEventType.POWER_STATE_CHANGED, resource.getFullName())); 52 52 53 53 //notification from last level -
DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/ui/NodePowerInterface.java
r1384 r1415 3 3 4 4 5 import java.util.List; 6 5 7 import schedframe.resources.ResourceStatus; 6 8 import schedframe.resources.computing.ComputingResource; 7 9 import schedframe.resources.computing.Node; 8 import schedframe.resources.computing.profiles.energy. EnergyEvent;9 import schedframe.resources.computing.profiles.energy. EnergyEventType;10 import schedframe.resources.computing.profiles.energy.ResourceEvent; 11 import schedframe.resources.computing.profiles.energy.ResourceEventType; 10 12 import schedframe.resources.computing.profiles.energy.power.PowerProfile; 13 import schedframe.resources.computing.profiles.energy.power.PowerState; 11 14 import schedframe.resources.computing.profiles.energy.power.PowerStateName; 12 15 import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName; 16 import schedframe.resources.computing.profiles.energy.power.Transition; 17 import simulator.DataCenterWorkloadSimulator; 13 18 14 19 public class NodePowerInterface extends ComputingResourcePowerInterface{ … … 26 31 27 32 Node node = (Node) resource; 28 for(ComputingResource child: node.getProcessors()){33 for(ComputingResource child: node.getProcessors()){ 29 34 if(child.getPowerInterface() != null){ 30 35 child.getPowerInterface().setPowerState(state); … … 39 44 } 40 45 41 node.handleEvent(new EnergyEvent(EnergyEventType.POWER_STATE_CHANGED, node.getFullName()));46 node.handleEvent(new ResourceEvent(ResourceEventType.POWER_STATE_CHANGED, node.getFullName())); 42 47 43 48 //node.handleEvent(new EnergyEvent(EnergyEventType.POWER_STATE_CHANGED, computingNode.getName())); … … 48 53 49 54 public void turnOn(){ 55 /*double timePenalty = getTransitionTime(currentPowerState, StandardPowerStateName.ON); 56 setPowerState(StandardPowerStateName.BOOT); 57 DataCenterWorkloadSimulator.getEventManager().sendToResource(resource.getFullName(), timePenalty, new ResourceEvent(ResourceEventType.UPDATE_POWER_STATE, StandardPowerStateName.ON, resource.getFullName()));*/ 50 58 setPowerState(StandardPowerStateName.ON); 51 59 } 52 60 53 61 public void turnOff(){ 62 /*double timePenalty = getTransitionTime(currentPowerState, StandardPowerStateName.OFF); 63 setPowerState(StandardPowerStateName.POWEROFF); 64 DataCenterWorkloadSimulator.getEventManager().sendToResource(resource.getFullName(), timePenalty, new ResourceEvent(ResourceEventType.UPDATE_POWER_STATE, StandardPowerStateName.OFF, resource.getFullName()));*/ 54 65 setPowerState(StandardPowerStateName.OFF); 55 66 } 56 67 68 private double getTransitionTime(PowerStateName from, PowerStateName to){ 69 List<PowerState> availablePowerStates = getSupportedPowerStates(); 70 double timePenalty = 0; 71 for(PowerState ps : availablePowerStates){ 72 if(ps.getName().getLabel().equals(from.getLabel())){ 73 List<Transition> transitions = ps.getTransitions(); 74 for(Transition t: transitions){ 75 if(t.getTo().getLabel().equals(to)){ 76 timePenalty = t.getTime(); 77 } 78 } 79 } 80 } 81 return timePenalty; 82 } 57 83 58 84 -
DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/energy/power/ui/ProcessorPowerInterface.java
r1299 r1415 6 6 import schedframe.resources.ResourceStatus; 7 7 import schedframe.resources.computing.ComputingResource; 8 import schedframe.resources.computing.profiles.energy. EnergyEvent;9 import schedframe.resources.computing.profiles.energy. EnergyEventType;8 import schedframe.resources.computing.profiles.energy.ResourceEvent; 9 import schedframe.resources.computing.profiles.energy.ResourceEventType; 10 10 import schedframe.resources.computing.profiles.energy.power.PState; 11 11 import schedframe.resources.computing.profiles.energy.power.PowerProfile; … … 33 33 resource.setStatus(ResourceStatus.FREE); 34 34 } 35 resource.handleEvent(new EnergyEvent(EnergyEventType.POWER_STATE_CHANGED, resource.getFullName()));35 resource.handleEvent(new ResourceEvent(ResourceEventType.POWER_STATE_CHANGED, resource.getFullName())); 36 36 } 37 37 … … 67 67 //speed.setAmount(Double.valueOf(currentPState.getFrequency()).intValue()); 68 68 //new ResourceEventCommand(resource).execute(EnergyEventType.FREQUENCY_CHANGED); 69 resource.handleEvent(new EnergyEvent(EnergyEventType.FREQUENCY_CHANGED, resource.getFullName()));69 resource.handleEvent(new ResourceEvent(ResourceEventType.CPU_FREQUENCY_CHANGED, resource.getFullName())); 70 70 //resource.getScheduler().sendInternal(GridSimTags.SCHEDULE_NOW, DCWormsTags.UPDATE, resource.getName()); 71 71 -
DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/load/LoadExtension.java
r1285 r1415 7 7 import schedframe.resources.computing.extensions.ExtensionException; 8 8 import schedframe.resources.computing.extensions.ExtensionType; 9 import schedframe.resources.computing.profiles.energy. EnergyEvent;10 import schedframe.resources.computing.profiles.energy. EnergyEventType;9 import schedframe.resources.computing.profiles.energy.ResourceEvent; 10 import schedframe.resources.computing.profiles.energy.ResourceEventType; 11 11 import schedframe.resources.computing.profiles.load.ui.LoadInterface; 12 12 import schedframe.resources.devices.PhysicalResource; … … 29 29 if(loadProfile == null || loadProfile.getLoadEstimationPlugin() == null) 30 30 return false; 31 if(event.getType().getName().equals( EnergyEventType.POWER_STATE_CHANGED.getName()))31 if(event.getType().getName().equals(ResourceEventType.POWER_STATE_CHANGED.getName())) 32 32 return true; 33 else if(event.getType().getName().equals( EnergyEventType.FREQUENCY_CHANGED.getName()))33 else if(event.getType().getName().equals(ResourceEventType.CPU_FREQUENCY_CHANGED.getName())) 34 34 return true; 35 else if(event.getType().getName().equals( EnergyEventType.TASK_STARTED.getName()))35 else if(event.getType().getName().equals(ResourceEventType.TASK_STARTED.getName())) 36 36 return true; 37 else if(event.getType().getName().equals( EnergyEventType.TASK_FINISHED.getName()))37 else if(event.getType().getName().equals(ResourceEventType.TASK_FINISHED.getName())) 38 38 return true; 39 else if(event.getType().getName().equals( EnergyEventType.RESOURCE_UTILIZATION_CHANGED.getName()))39 else if(event.getType().getName().equals(ResourceEventType.UTILIZATION_CHANGED.getName())) 40 40 return true; 41 41 else return false; … … 44 44 public void handleEvent(Event event) { 45 45 46 EnergyEvent enEvent = (EnergyEvent)event;46 ResourceEvent enEvent = (ResourceEvent)event; 47 47 double load = 0; 48 48 try{ … … 54 54 break; 55 55 56 case FREQUENCY_CHANGED:56 case CPU_FREQUENCY_CHANGED: 57 57 load = loadProfile.getLoadEstimationPlugin().estimateUtlization(enEvent, new JobRegistryImpl(resource.getFullName()), resource); 58 58 loadProfile.addToLoadHistory(load); … … 69 69 break; 70 70 71 case RESOURCE_UTILIZATION_CHANGED:71 case UTILIZATION_CHANGED: 72 72 load = loadProfile.getLoadEstimationPlugin().estimateUtlization(enEvent, new JobRegistryImpl(resource.getFullName()), resource); 73 73 loadProfile.addToLoadHistory(load); -
DCWoRMS/branches/coolemall/src/schedframe/resources/computing/profiles/load/plugin/LoadEstimationPlugin.java
r1285 r1415 2 2 3 3 import schedframe.Plugin; 4 import schedframe.resources.computing.profiles.energy. EnergyEvent;4 import schedframe.resources.computing.profiles.energy.ResourceEvent; 5 5 import schedframe.resources.devices.PhysicalResource; 6 6 import schedframe.scheduling.manager.tasks.JobRegistry; … … 8 8 public interface LoadEstimationPlugin extends Plugin { 9 9 10 public double estimateUtlization( EnergyEvent event, JobRegistry jobRegistry, PhysicalResource resource);10 public double estimateUtlization(ResourceEvent event, JobRegistry jobRegistry, PhysicalResource resource); 11 11 12 12 -
DCWoRMS/branches/coolemall/src/schedframe/resources/devices/Device.java
r1396 r1415 1 1 package schedframe.resources.devices; 2 2 3 import schedframe.events.Event;4 3 import schedframe.events.EventHandler; 4 import schedframe.events.EventReason; 5 5 import schedframe.events.ResourceEventCommand; 6 import schedframe.events.scheduling.EventReason;7 6 import schedframe.events.scheduling.SchedulingEvent; 8 7 import schedframe.resources.ResourceStatus; … … 11 10 import schedframe.resources.computing.extensions.Extension; 12 11 import schedframe.resources.computing.extensions.ExtensionListImpl; 13 import schedframe.resources.computing.profiles.energy. EnergyEvent;14 import schedframe.resources.computing.profiles.energy. EnergyEventType;12 import schedframe.resources.computing.profiles.energy.ResourceEvent; 13 import schedframe.resources.computing.profiles.energy.ResourceEventType; 15 14 import schedframe.resources.computing.profiles.energy.EnergyExtension; 16 15 import schedframe.resources.devices.description.DeviceDescription; … … 44 43 } 45 44 46 public void handleEvent( Event event) {45 public void handleEvent(ResourceEvent event) { 47 46 ResourceEventCommand rec = new ResourceEventCommand(this); 48 47 rec.execute(event); … … 51 50 class DeviceEventHandler implements EventHandler{ 52 51 53 public void handleResourceEvent( Event event){52 public void handleResourceEvent(ResourceEvent event){ 54 53 if (extensionList != null) { 55 54 for (Extension extension : extensionList) { … … 75 74 76 75 ResourceEventCommand rec = new ResourceEventCommand(this); 77 EnergyEvent event = new EnergyEvent(EnergyEventType.AIRFLOW_STATE_CHANGED, "Resource controller");76 ResourceEvent event = new ResourceEvent(ResourceEventType.AIRFLOW_STATE_CHANGED, "Resource controller"); 78 77 event.setReason(EventReason.SIM_INIT); 79 78 rec.execute(event); 80 79 81 80 rec = new ResourceEventCommand(this); 82 event = new EnergyEvent(EnergyEventType.POWER_STATE_CHANGED, "Resource controller");81 event = new ResourceEvent(ResourceEventType.POWER_STATE_CHANGED, "Resource controller"); 83 82 event.setReason(EventReason.SIM_INIT); 84 83 rec.execute(event); 85 84 86 85 rec = new ResourceEventCommand(this); 87 event = new EnergyEvent(EnergyEventType.TEMPERATURE_CHANGED, "Resource controller");86 event = new ResourceEvent(ResourceEventType.TEMPERATURE_CHANGED, "Resource controller"); 88 87 event.setReason(EventReason.SIM_INIT); 89 88 rec.execute(event); -
DCWoRMS/branches/coolemall/src/schedframe/resources/devices/DeviceAirflowInterface.java
r1396 r1415 7 7 8 8 import schedframe.Parameters; 9 import schedframe.resources.computing.profiles.energy. EnergyEvent;10 import schedframe.resources.computing.profiles.energy. EnergyEventType;9 import schedframe.resources.computing.profiles.energy.ResourceEvent; 10 import schedframe.resources.computing.profiles.energy.ResourceEventType; 11 11 import schedframe.resources.computing.profiles.energy.airthroughput.AirflowValue; 12 12 import schedframe.resources.computing.profiles.energy.airthroughput.AirflowProfile; … … 37 37 38 38 //TO DO - notifications should be called for all resources starting form the lowest layer 39 resource.handleEvent(new EnergyEvent(EnergyEventType.AIRFLOW_STATE_CHANGED, resource.getFullName()));40 resource.handleEvent(new EnergyEvent(EnergyEventType.POWER_STATE_CHANGED, resource.getFullName()));39 resource.handleEvent(new ResourceEvent(ResourceEventType.AIRFLOW_STATE_CHANGED, resource.getFullName())); 40 resource.handleEvent(new ResourceEvent(ResourceEventType.POWER_STATE_CHANGED, resource.getFullName())); 41 41 return true; 42 42 } -
DCWoRMS/branches/coolemall/src/schedframe/resources/devices/DevicePowerInterface.java
r1380 r1415 7 7 8 8 import schedframe.Parameters; 9 import schedframe.resources.computing.profiles.energy. EnergyEvent;10 import schedframe.resources.computing.profiles.energy. EnergyEventType;9 import schedframe.resources.computing.profiles.energy.ResourceEvent; 10 import schedframe.resources.computing.profiles.energy.ResourceEventType; 11 11 import schedframe.resources.computing.profiles.energy.power.PowerProfile; 12 12 import schedframe.resources.computing.profiles.energy.power.PowerState; … … 32 32 currentPowerState = state; 33 33 34 resource.handleEvent(new EnergyEvent(EnergyEventType.POWER_STATE_CHANGED, resource.getFullName()));34 resource.handleEvent(new ResourceEvent(ResourceEventType.POWER_STATE_CHANGED, resource.getFullName())); 35 35 36 36 return true; -
DCWoRMS/branches/coolemall/src/schedframe/resources/devices/Fan.java
r1274 r1415 4 4 import java.util.List; 5 5 6 import schedframe.resources.computing.ComputingResource; 6 7 import schedframe.resources.devices.description.DeviceDescription; 7 8 … … 12 13 public Fan(DeviceDescription devDesc) { 13 14 super(devDesc); 14 this.chilledResources = new ArrayList<String>();15 15 } 16 16 17 17 public List<String> getChilledResources(){ 18 if(chilledResources == null){ 19 List<String> resNames = new ArrayList<String>(); 20 for(ComputingResource compRes: this.getComputingResource().getChildren()){ 21 resNames.add(compRes.getFullName()); 22 } 23 return resNames; 24 } 18 25 return chilledResources; 19 26 } -
DCWoRMS/branches/coolemall/src/schedframe/resources/devices/PhysicalResource.java
r1396 r1415 12 12 import schedframe.resources.computing.extensions.ExtensionType; 13 13 import schedframe.resources.computing.profiles.energy.EnergyExtension; 14 import schedframe.resources.computing.profiles.energy.ResourceEvent; 14 15 import schedframe.resources.computing.profiles.energy.airthroughput.ui.AirflowInterface; 15 16 import schedframe.resources.computing.profiles.energy.power.ui.PowerInterface; … … 28 29 29 30 30 public abstract void handleEvent( Event event);31 public abstract void handleEvent(ResourceEvent event); 31 32 32 33 public abstract EventHandler getEventHandler(); -
DCWoRMS/branches/coolemall/src/schedframe/resources/devices/description/PhysicalResourceDescription.java
r1396 r1415 30 30 import schemas.PowerUsage; 31 31 import schemas.Profile; 32 import schemas.StringValueWithUnit; 32 33 import simulator.utils.InstanceFactory; 33 34 import example.energy.DefaultEnergyEstimationPlugin; … … 82 83 } 83 84 Parameters params = extractParameters(powerProfileCharacteristic.getEnergyEstimationPlugin().getParameter()); 85 if(powerProfileCharacteristic.getEnergyEstimationPlugin().getPowerCapLevel() != null) { 86 Parameter param = new Parameter("powerCapLevel"); 87 StringValueWithUnit sv = new StringValueWithUnit(); 88 sv.setContent(String.valueOf(powerProfileCharacteristic.getEnergyEstimationPlugin().getPowerCapLevel().getContent())); 89 sv.setUnit(powerProfileCharacteristic.getEnergyEstimationPlugin().getPowerCapLevel().getUnit()); 90 param.add(sv); 91 92 if(params == null) 93 params = new Parameters(); 94 params.put("powerCapLevel", param); 95 } 96 if(powerProfileCharacteristic.getEnergyEstimationPlugin().getPowerFloorLevel() != null) { 97 Parameter param = new Parameter("powerFloorLevel"); 98 StringValueWithUnit sv = new StringValueWithUnit(); 99 sv.setContent(String.valueOf(powerProfileCharacteristic.getEnergyEstimationPlugin().getPowerFloorLevel().getContent())); 100 sv.setUnit(powerProfileCharacteristic.getEnergyEstimationPlugin().getPowerFloorLevel().getUnit()); 101 param.add(sv); 102 103 if(params == null) 104 params = new Parameters(); 105 params.put("powerFloorLevel", param); 106 } 84 107 energyEstimationPlugin.init(params); 85 108 } -
DCWoRMS/branches/coolemall/src/schedframe/resources/units/StandardResourceUnitName.java
r1396 r1415 37 37 COST("cost"), 38 38 39 PE("processing Element");39 PE("processingelement"); 40 40 41 41
Note: See TracChangeset
for help on using the changeset viewer.