package example.energy; import schedframe.resources.computing.ComputingNode; import schedframe.resources.computing.ComputingResource; import schedframe.resources.computing.Processor; import schedframe.resources.computing.profiles.energy.EnergyEvent; import schedframe.scheduling.manager.tasks.JobRegistry; public class ComputingNodeEnergyEstimationPlugin extends BaseEnergyEstimationPlugin { @Override public double estimatePowerConsumption(EnergyEvent event, JobRegistry jobRegistry, ComputingResource resource) { double power = 0; ComputingNode node = (ComputingNode) resource; for(Processor cpu: node.getProcessors()){ try{ power = power + cpu.getPowerInterface().getRecentPowerUsage().getValue(); } catch(Exception e){ //power = power + cpu.getPowerInterface().getPowerConsumption(cpu.getPowerInterface().getPowerState()); } } try { power += node.getPowerInterface().getPowerConsumption(node.getPowerInterface().getPowerState()); } catch (NoSuchFieldException e) { } return power; } public String getName() { return getClass().getName(); } }