source: DCWoRMS/branches/coolemall/src/experiments/simpat2012/recs/plugins/energy/AmdNodeEEP.java @ 1498

Revision 1498, 3.8 KB checked in by wojtekp, 10 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package experiments.simpat2012.recs.plugins.energy;
2
3import java.io.FileNotFoundException;
4import java.io.IOException;
5
6import schedframe.resources.computing.Node;
7import schedframe.resources.computing.Processor;
8import schedframe.resources.computing.profiles.energy.ResourceEvent;
9import schedframe.resources.devices.PhysicalResource;
10import schedframe.scheduling.manager.tasks.JobRegistry;
11
12public class AmdNodeEEP extends RecsNodeBaseEEP {
13
14        public double estimatePowerConsumption(ResourceEvent event, JobRegistry jobRegistry,
15                        PhysicalResource resource) {
16                double powerConsumption = 0;
17                Node node = (Node) resource;
18                try {
19                        if(jobRegistry.getRunningTasks().size() > 0) {
20                                powerConsumption = powerConsumption + getMeasuredPower(createQuery(jobRegistry.getRunningTasks().get(0)));
21                        }
22                        else {
23                                for(Processor cpu: node.getProcessors()){
24                                        try{
25                                                //powerConsumption = powerConsumption + cpu.getPowerInterface().getRecentPowerUsage().getValue();
26                                        } catch (Exception e){
27                                               
28                                        }
29                                }
30                                try {
31                                        powerConsumption = powerConsumption + node.getPowerInterface().getPowerConsumption(node.getPowerInterface().getPowerState());
32                                } catch (NoSuchFieldException e) {
33                                }
34                        }
35                } catch (FileNotFoundException e) {
36                        // TODO Auto-generated catch block
37                        e.printStackTrace();
38                } catch (IOException e) {
39                        // TODO Auto-generated catch block
40                        e.printStackTrace();
41                }
42                /*return powerConsumption;
43               
44                double nodeIdle = 10;
45                double cpuBase = 2;
46                double c = 1.12;
47                double f;
48                double fbase;
49                double papp = 0;
50                double load = 0;
51                double powerConsumption = 0;
52                ComputingNode node = (ComputingNode) resource;
53
54                        if(jobRegistry.getRunningTasks().size() > 0) {
55                                ExecTask task = jobRegistry.getRunningTasks().get(0);
56                                try {
57                                        load = task.getCpuCntRequest()/8;
58                                } catch (NoSuchFieldException e) {
59                                        // TODO Auto-generated catch block
60                                        e.printStackTrace();
61                                }
62                                f = node.getProcessors().get(0).getPowerInterface().getFrequency();
63                                fbase = node.getProcessors().get(0).getPowerInterface().getHighestPState().getFrequency();
64                                switch(tta.getAppType(task)){
65                                case abinit:{
66                                        break;
67                                }
68                                case c_ray:{
69                                        papp = 1;
70                                        break;
71                                }
72                                case fft: {
73                                        papp = 2;
74                                        break;
75                                }
76                                case lin_3gb: {
77                                        break;
78                                }
79                                case lin_tiny: {
80                                        break;
81                                }
82                                case tar: {
83                                        papp = 2.5;
84                                        break;
85                                }
86                                }
87                               
88                                try {
89                                        load = getLoad(createQuery(jobRegistry.getRunningTasks().get(0)))/100;
90                                } catch (FileNotFoundException e) {
91                                        // TODO Auto-generated catch block
92                                        e.printStackTrace();
93                                } catch (IOException e) {
94                                        // TODO Auto-generated catch block
95                                        e.printStackTrace();
96                                }
97                                powerConsumption = nodeIdle  + load * cpuBase * Math.pow(c, (f-fbase)/100) + papp;
98
99                        }
100                        else {
101                                for(Processor cpu: node.getProcessors()){
102                                        try{
103                                                //powerConsumption = powerConsumption + cpu.getPowerInterface().getRecentPowerUsage().getValue();
104                                        } catch (Exception e){
105                                               
106                                        }
107                                }
108                                try {
109                                        powerConsumption = powerConsumption + node.getPowerInterface().getPowerConsumption(node.getPowerInterface().getPowerState());
110                                } catch (NoSuchFieldException e) {
111                                }
112                        }
113                       
114               
115       
116                /*double powerConsumption = 0;
117                ComputingNode node = (ComputingNode) resource;
118                if(jobRegistry.getRunningTasks().size() > 0) {
119                        for(Processor cpu: node.getProcessors()){
120                                try{
121                                        powerConsumption = node.getPowerInterface().getPowerConsumption(node.getPowerInterface().getPowerState()) + cpu.getPowerInterface().getPState().getPower();
122                                } catch (Exception e){
123                                       
124                                }
125                        }
126                }
127                else try {
128                        powerConsumption = powerConsumption + node.getPowerInterface().getPowerConsumption(node.getPowerInterface().getPowerState());
129                } catch (NoSuchFieldException e) {
130                }
131                System.out.println("pca:" + powerConsumption);*/
132                return powerConsumption;
133        }
134
135}
Note: See TracBrowser for help on using the repository browser.