source: DCWoRMS/branches/coolemall/src/test/fips/models/fpga/FPGAEnergyEstimationPlugin.java @ 1600

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