source: DCWoRMS/branches/coolemall/src/test/fips/models/teslaK40/K40EnergyEstimationPlugin.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.teslaK40;
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 K40EnergyEstimationPlugin 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 = 37;
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("PM_Usage")){
42                                                usage = pb.getUtilization();
43                                                break;
44                                        }
45                                        if(pb.getResouceName().equals("PM_Running_Energy")){
46
47                                                break;
48                                        }
49                                }
50
51                        }
52                }
53                return powerConsumption;
54        }
55       
56
57}
Note: See TracBrowser for help on using the repository browser.