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

Revision 1600, 2.1 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.Processor;
4import schedframe.resources.computing.profiles.energy.ResourceEvent;
5import schedframe.resources.computing.profiles.energy.power.StandardPowerStateName;
6import schedframe.resources.devices.PhysicalResource;
7import schedframe.scheduling.manager.tasks.JobRegistry;
8import schedframe.scheduling.tasks.phases.PhaseSystemLoad;
9import dcworms.schedframe.scheduling.ExecTask;
10import example.energy.BaseEnergyEstimationPlugin;
11
12public class CpuEnergyEstimationPlugin 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 = 18;
32                        }
33                        for(ExecTask task: jobRegistry.getRunningTasks()){
34                                double usage = 0;
35                                //double energy = Double.valueOf(task.getExecutionProfile().getCurrentExecutionPhase().getReferenceHardware().get("Total_Running_Energy"));
36                                //double idle_energy = Double.valueOf(task.getExecutionProfile().getCurrentExecutionPhase().getReferenceHardware().get("Total_Idle_Energy"));
37                                double av_power = Double.valueOf(task.getExecutionProfile().getCurrentExecutionPhase().getReferenceHardware().get("Average_Power"));
38                                 powerConsumption =  powerConsumption + av_power;
39                                for(PhaseSystemLoad pb: task.getExecutionProfile().getCurrentExecutionPhase().getSystemLoad()){
40                                        if(pb.getResouceName().equals("Usage")){
41                                                usage = pb.getUtilization();
42                                                break;
43                                        }
44                                        if(pb.getResouceName().equals("PM_Running_Energy")){
45                                                //energy = pb.getUtilization();
46                                                break;
47                                        }
48                                }
49
50                        }
51
52                }
53               
54                return powerConsumption;
55
56        }
57
58}
Note: See TracBrowser for help on using the repository browser.