source: DCWoRMS/branches/coolemall/src/experiments/e2dc2015/models/i5/RackEnergyEstimationPlugin.java @ 1593

Revision 1593, 1.6 KB checked in by wojtekp, 8 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package experiments.e2dc2015.models.i5;
2
3import schedframe.resources.computing.ComputingResource;
4import schedframe.resources.computing.Node;
5import schedframe.resources.computing.Rack;
6import schedframe.resources.computing.profiles.energy.ResourceEvent;
7import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName;
8import schedframe.resources.devices.PhysicalResource;
9import schedframe.scheduling.manager.tasks.JobRegistry;
10import example.energy.BaseEnergyEstimationPlugin;
11import example.energy.coolemall.CoolEmAllTestbedMeasurements;
12
13public class RackEnergyEstimationPlugin extends BaseEnergyEstimationPlugin{
14       
15        public double estimatePowerConsumption(ResourceEvent event, JobRegistry jobRegistry,
16                        PhysicalResource resource) {
17
18               
19                double powerConsumption = 0;
20                Rack rack = (Rack)resource;
21                for(ComputingResource nodeGroup: rack.getChildren()){
22                        try{
23                                powerConsumption = powerConsumption + nodeGroup.getPowerInterface().getRecentPowerUsage().getValue();
24                        } catch (Exception e){
25                               
26                        }
27                }
28               
29                for(Node node: rack.getNodes()){
30                        if(node.getProcessors().get(0).getThermalInterface().getRecentTemperature().getValue() > 90){
31                                //powerConsumption = powerConsumption + 15;
32                        }
33                }
34               
35                int nrOfPoweredOffNodes = 0;
36                for(Node node: rack.getNodes()){
37                        if(node.getPowerInterface().getPowerState().equals(StandardPowerStateName.OFF)){
38                                nrOfPoweredOffNodes++;
39                        }
40                }
41                if(nrOfPoweredOffNodes != rack.getNodes().size()){
42                        powerConsumption = (powerConsumption + CoolEmAllTestbedMeasurements.OTHER_DEVICES_POWER_CONSUMPTION)/CoolEmAllTestbedMeasurements.POWER_SUPPLY_EFFICIENCY;                     
43                }
44
45                return powerConsumption;
46        }
47       
48
49}
Note: See TracBrowser for help on using the repository browser.