source: DCWoRMS/branches/coolemall/src/example/energy/recs/ProcessorEnergyEstimationPlugin.java @ 883

Revision 883, 1.6 KB checked in by wojtekp, 12 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package example.energy.recs;
2
3import example.energy.BaseEnergyEstimationPlugin;
4import schedframe.resources.ResourceStatus;
5import schedframe.resources.computing.ComputingResource;
6import schedframe.resources.computing.Processor;
7import schedframe.resources.computing.profiles.energy.EnergyEvent;
8import schedframe.resources.computing.profiles.energy.EnergyEventType;
9import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName;
10import schedframe.scheduling.manager.tasks.JobRegistry;
11
12public class ProcessorEnergyEstimationPlugin extends BaseEnergyEstimationPlugin  {
13
14        public double estimatePowerConsumption(EnergyEvent event, JobRegistry jobRegistry,
15                        ComputingResource resource) {
16                double powerConsumption;
17                Processor cpu = (Processor)resource;
18                if(resource.getPowerInterface().getPowerState().equals(StandardPowerStateName.OFF))
19                        powerConsumption = 0;
20                else {
21                        try {
22                                if(resource.getStatus() == ResourceStatus.BUSY)
23                                        powerConsumption = 60;
24                                        //powerConsumption = cpu.getPowerInterface().getPowerConsumption(cpu.getPowerInterface().getPState());
25                                else {
26                                        powerConsumption = 10;
27                                        //powerConsumption = cpu.getPowerInterface().getPowerConsumption(StandardPowerStateName.ON);
28                                }
29                        } catch (Exception e) {
30                                try {
31                                        powerConsumption = cpu.getPowerInterface().getPowerConsumption(StandardPowerStateName.ON);
32                                } catch (NoSuchFieldException e1) {
33                                        powerConsumption = 10;
34                                }
35                        }
36                }
37                if(event.getType() == EnergyEventType.RESOURCE_UTILIZATION_CHANGED)
38                        powerConsumption = powerConsumption/2;
39                return powerConsumption;
40        }
41
42}
Note: See TracBrowser for help on using the repository browser.