source: DCWoRMS/branches/coolemall/src/experiments/simpat2014/models/basic/FanEnergyEstimationPlugin.java @ 1500

Revision 1500, 2.2 KB checked in by wojtekp, 10 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package experiments.simpat2014.models.basic;
2
3import schedframe.resources.computing.Node;
4import schedframe.resources.computing.Processor;
5import schedframe.resources.computing.profiles.energy.ResourceEvent;
6import schedframe.resources.devices.Fan;
7import schedframe.resources.devices.PhysicalResource;
8import schedframe.scheduling.manager.tasks.JobRegistry;
9import example.energy.BaseEnergyEstimationPlugin;
10import experiments.simpat2014.EnvironmentConditions;
11
12public class FanEnergyEstimationPlugin extends BaseEnergyEstimationPlugin {
13
14        /*private static int PFanMax = 6;
15        private static int TFanLow = 45;
16        private static int TFanHigh = 47;*/
17
18       
19        public double estimatePowerConsumption(ResourceEvent event, JobRegistry jobRegistry,
20                        PhysicalResource resource) {
21               
22                double powerConsumption = 0;
23                Fan fan = (Fan) resource;
24                /*Node node = (Node) fan.getComputingResource();
25                double Tcpu = 0;
26                for(Processor cpu: node.getProcessors()){
27                        Tcpu = Tcpu + cpu.getThermalInterface().getRecentTemperature().getValue();
28                }
29                Tcpu = Tcpu/node.getProcessors().size();
30               
31                if (Tcpu < TFanLow) {
32                        powerConsumption = 4;
33                } else if (Tcpu > TFanHigh){
34                        powerConsumption = PFanMax;
35                }
36                */
37               
38                try {
39                        powerConsumption = fan.getAirflowInterface().getPowerConsumption(fan.getAirflowInterface().getAirflowState());
40                } catch (NoSuchFieldException e) {
41                        //
42                }
43               
44                return powerConsumption;
45        }
46       
47        public double estimateAirflow(ResourceEvent event, JobRegistry jobRegistry, PhysicalResource resource) {
48               
49                double airflow = 0;
50                Fan fan = (Fan) resource;
51               
52                /*double fanEfficiency = 0;
53                try{
54                        fanEfficiency = Double.valueOf(fan.getPowerInterface().getParameters().get("fanEfficiency").get(0).getContent()).doubleValue();
55                } catch (Exception e){
56                        //
57                }
58
59                double dp = 1013.25;
60                airflow = fan.getPowerInterface().getRecentPowerUsage().getValue() * fanEfficiency /dp;*/
61
62                try {
63                        airflow = fan.getAirflowInterface().getAirflow(fan.getAirflowInterface().getAirflowState());
64                } catch (NoSuchFieldException e) {
65                        //
66                }
67                return airflow;
68        }
69       
70        public double estimateTemperature (ResourceEvent event, JobRegistry jobRegistry, PhysicalResource resource) {
71                double temperature = EnvironmentConditions.ROOM_TEMPERATURE;
72                return temperature;
73        }
74       
75
76}
Note: See TracBrowser for help on using the repository browser.