package example.energy; import java.util.Properties; import schedframe.resources.profile.PowerUsage; import test.rewolucja.energy.EnergyEvent; import test.rewolucja.energy.plugin.EnergyEstimationPluginInterface; import test.rewolucja.resources.physical.base.ComputingResource; import test.rewolucja.resources.physical.implementation.CPU; import test.rewolucja.resources.physical.implementation.ComputingNode; import test.rewolucja.resources.physical.implementation.DataCenter; import test.rewolucja.scheduling.JobRegistryInterface; import test.rewolucja.scheduling.PluginConfiguration; public class DataCenterEnergyEstimationPlugin implements EnergyEstimationPluginInterface { @Override public double estimatePowerConsumption(EnergyEvent event, JobRegistryInterface jobRegistry, ComputingResource resource) { double power = 0; for(ComputingResource child:resource.getChildren()){ ComputingNode node = (ComputingNode)child; PowerUsage powerUsage = node.getPowerInterface().getRecentPowerUsage(); power += (powerUsage == null ? 0 : powerUsage.getValue()); } //power += 100; if(power < 140){ for(ComputingResource child:resource.getChildren()){ ComputingNode node = (ComputingNode)child; for(CPU cpu:node.getProcessors()){ //cpu.getPowerProfile().setFrequency(2000); } } } //System.out.println( new DateTime() + "ENERGY CONSUMPT BY: " + resMan.getResourceName() +" IS: " + power); return power; } @Override public String getName() { // TODO Auto-generated method stub return null; } @Override public void init(Properties properties) { // TODO Auto-generated method stub } @Override public PluginConfiguration getConfiguration() { // TODO Auto-generated method stub return null; } @Override public double estimateEnergyDissipation(EnergyEvent event, JobRegistryInterface jobRegistry, ComputingResource resourceManager) { // TODO Auto-generated method stub return 0; } @Override public double estimateTemperature(EnergyEvent event, JobRegistryInterface jobRegistry, ComputingResource resourceManager) { // TODO Auto-generated method stub return 0; } }