source: DCWoRMS/branches/coolemall/src/test/fips/models/xeon_fpga/XeonFpgaEnergyEstimationPlugin.java @ 1600

Revision 1600, 1.9 KB checked in by wojtekp, 8 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package test.fips.models.xeon_fpga;
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 XeonFpgaEnergyEstimationPlugin 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                        load = proc.getLoadInterface().getRecentUtilization().getValue();
31                        if(load == 0){
32                                powerConsumption = 17;
33                        }
34                        for(ExecTask task: jobRegistry.getRunningTasks()){
35                                double usage = 0;
36                                double av_power = Double.valueOf(task.getExecutionProfile().getCurrentExecutionPhase().getReferenceHardware().get("Average_Power"));
37                                powerConsumption =  powerConsumption + av_power;
38                                for(PhaseSystemLoad pb: task.getExecutionProfile().getCurrentExecutionPhase().getSystemLoad()){
39                                        if(pb.getResouceName().equals("PM_Usage")){
40                                                usage = pb.getUtilization();
41                                                break;
42                                        }
43                                        if(pb.getResouceName().equals("PM_Running_Energy")){
44                                                break;
45                                        }
46                                }
47
48                        }
49                }
50                return powerConsumption;
51        }
52       
53
54}
Note: See TracBrowser for help on using the repository browser.