source: DCWoRMS/branches/coolemall/src/test/fips/models/xeon/XeonEnergyEstimationPlugin.java @ 1600

Revision 1600, 1.8 KB checked in by wojtekp, 8 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package test.fips.models.xeon;
2
3import dcworms.schedframe.scheduling.ExecTask;
4import schedframe.resources.computing.Processor;
5import schedframe.resources.computing.profiles.energy.ResourceEvent;
6import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName;
7import schedframe.resources.devices.PhysicalResource;
8import schedframe.scheduling.manager.tasks.JobRegistry;
9import schedframe.scheduling.tasks.phases.PhaseSystemLoad;
10import example.energy.BaseEnergyEstimationPlugin;
11
12public class XeonEnergyEstimationPlugin extends BaseEnergyEstimationPlugin {
13
14
15        public double estimatePowerConsumption(ResourceEvent event, JobRegistry jobRegistry,
16                        PhysicalResource resource) {
17                /*double powerConsumption = 0;
18
19                Processor cpu = (Processor)resource;
20                powerConsumption = Pidle + (Pfull- Pidle) * cpu.getLoadInterface().getRecentUtilization().getValue()/100;                       
21
22                return powerConsumption;*/
23                double load = 0;
24                double powerConsumption = 0;
25                Processor proc = (Processor)resource;
26                if(resource.getPowerInterface().getPowerState().equals(StandardPowerStateName.OFF))
27                        return 0;
28                else {
29                        load = proc.getLoadInterface().getRecentUtilization().getValue();
30                        if(load == 0){
31                                powerConsumption = 11;
32                        }
33                        for(ExecTask task: jobRegistry.getRunningTasks()){
34                                double usage = 0;
35                                double av_power = Double.valueOf(task.getExecutionProfile().getCurrentExecutionPhase().getReferenceHardware().get("Average_Power"));
36                                powerConsumption =  powerConsumption + av_power;
37                                for(PhaseSystemLoad pb: task.getExecutionProfile().getCurrentExecutionPhase().getSystemLoad()){
38                                        if(pb.getResouceName().equals("PM_Usage")){
39                                                usage = pb.getUtilization();
40                                                break;
41                                        }
42                                        if(pb.getResouceName().equals("PM_Running_Energy")){
43                                                break;
44                                        }
45                                }
46
47                        }
48                }
49                return powerConsumption;
50        }
51       
52
53}
Note: See TracBrowser for help on using the repository browser.