source: DCWoRMS/branches/coolemall/src/test/fips/models/i7/RackEnergyEstimationPlugin.java @ 1600

Revision 1600, 1.4 KB checked in by wojtekp, 8 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package test.fips.models.i7;
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                int nrOfPoweredOffNodes = 0;
30                for(Node node: rack.getNodes()){
31                        if(node.getPowerInterface().getPowerState().equals(StandardPowerStateName.OFF)){
32                                nrOfPoweredOffNodes++;
33                        }
34                }
35                if(nrOfPoweredOffNodes != rack.getNodes().size()){
36                        powerConsumption = (powerConsumption + CoolEmAllTestbedMeasurements.OTHER_DEVICES_POWER_CONSUMPTION)/CoolEmAllTestbedMeasurements.POWER_SUPPLY_EFFICIENCY;                     
37                }
38
39                return powerConsumption;
40        }
41       
42
43}
Note: See TracBrowser for help on using the repository browser.