source: DCWoRMS/branches/coolemall/src/example/energy/NodeEnergyEstimationPlugin.java @ 1555

Revision 1555, 1.7 KB checked in by wojtekp, 9 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package example.energy;
2
3import gridsim.dcworms.DCWormsTags;
4
5
6import schedframe.resources.computing.Node;
7import schedframe.resources.computing.Processor;
8import schedframe.resources.computing.profiles.energy.ResourceEvent;
9import schedframe.resources.computing.profiles.energy.power.plugin.EnergyPluginConfiguration;
10import schedframe.resources.devices.Device;
11import schedframe.resources.devices.PhysicalResource;
12import schedframe.scheduling.manager.tasks.JobRegistry;
13import simulator.DataCenterWorkloadSimulator;
14
15public class NodeEnergyEstimationPlugin extends BaseEnergyEstimationPlugin {
16
17        public double estimatePowerConsumption(ResourceEvent event, JobRegistry jobRegistry,
18                        PhysicalResource resource) {
19                double powerConsumption = 0;
20                EnergyPluginConfiguration epConf = (EnergyPluginConfiguration) getConfiguration();
21                Node node = (Node) resource;
22                for(Processor cpu: node.getProcessors()){
23                        try{
24                                powerConsumption = powerConsumption + cpu.getPowerInterface().getRecentPowerUsage().getValue();
25                        } catch (Exception e){
26                               
27                        }
28                }
29                try {
30                        powerConsumption = powerConsumption + node.getPowerInterface().getPowerConsumption(node.getPowerInterface().getPowerState());
31                        for(Device dev: node.getResourceCharacteristic().getDevices()){
32                                if(dev.getPowerInterface().getRecentPowerUsage().getValue() != -1)
33                                        powerConsumption = powerConsumption + dev.getPowerInterface().getRecentPowerUsage().getValue();
34                        }
35                } catch (NoSuchFieldException e) {
36                }
37
38                if(epConf.getPowerCapLevel() != -1 && powerConsumption > epConf.getPowerCapLevel()){
39                        DataCenterWorkloadSimulator.getEventManager().sendToAllSchedulers(0, DCWormsTags.RESOURCE_POWER_LIMIT_EXCEEDED, node.getFullName());
40                }
41                return powerConsumption;
42        }
43
44}
Note: See TracBrowser for help on using the repository browser.