source: DCWoRMS/branches/coolemall/src/test/simpat/models/article/RackEnergyEstimationPlugin.java @ 1469

Revision 1469, 2.1 KB checked in by wojtekp, 10 years ago (diff)
Line 
1package test.simpat.models.article;
2
3import java.util.List;
4
5import schedframe.resources.CoolEmAllResourceType;
6import schedframe.resources.computing.ComputingResource;
7import schedframe.resources.computing.Node;
8import schedframe.resources.computing.Processor;
9import schedframe.resources.computing.Rack;
10import schedframe.resources.computing.coolemall.ComputeBox1;
11import schedframe.resources.computing.coolemall.NodeGroup;
12import schedframe.resources.computing.profiles.energy.ResourceEvent;
13import schedframe.resources.computing.profiles.energy.airthroughput.CustomAirflowStateName;
14import schedframe.resources.computing.profiles.energy.power.PState;
15import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName;
16import schedframe.resources.devices.Device;
17import schedframe.resources.devices.PhysicalResource;
18import schedframe.scheduling.manager.tasks.JobRegistry;
19import simulator.DataCenterWorkloadSimulator;
20import example.energy.BaseEnergyEstimationPlugin;
21import example.energy.coolemall.CoolEmAllTestbedMeasurements;
22import gridsim.dcworms.DCWormsTags;
23
24public class RackEnergyEstimationPlugin extends BaseEnergyEstimationPlugin{
25       
26        public double estimatePowerConsumption(ResourceEvent event, JobRegistry jobRegistry,
27                        PhysicalResource resource) {
28
29               
30                double powerConsumption = 0;
31                Rack rack = (Rack)resource;
32                for(ComputingResource nodeGroup: rack.getChildren()){
33                        try{
34                                powerConsumption = powerConsumption + nodeGroup.getPowerInterface().getRecentPowerUsage().getValue();
35                        } catch (Exception e){
36                               
37                        }
38                }
39               
40                for(Node node: rack.getNodes()){
41                                if(node.getProcessors().get(0).getThermalInterface().getRecentTemperature().getValue() > 90){
42                                        //powerConsumption = powerConsumption + 15;
43                                }
44                }
45               
46                int nrOfPoweredOffNodes = 0;
47                for(Node node: rack.getNodes()){
48                        if(node.getPowerInterface().getPowerState().equals(StandardPowerStateName.OFF)){
49                                nrOfPoweredOffNodes++;
50                        }
51                }
52                if(nrOfPoweredOffNodes != rack.getNodes().size()){
53                        powerConsumption = (powerConsumption + CoolEmAllTestbedMeasurements.OTHER_DEVICES_POWER_CONSUMPTION)/CoolEmAllTestbedMeasurements.POWER_SUPPLY_EFFICIENCY;                     
54                }
55
56                return powerConsumption;
57        }
58       
59
60}
Note: See TracBrowser for help on using the repository browser.