package experiments.e2dc2015.models.i5; import schedframe.resources.computing.profiles.energy.ResourceEvent; import schedframe.resources.devices.Device; import schedframe.resources.devices.PhysicalResource; import schedframe.scheduling.manager.tasks.JobRegistry; import example.energy.BaseEnergyEstimationPlugin; import experiments.e2dc2015.EnvironmentConditions; public class PowerLeakageEnergyEstimationPlugin extends BaseEnergyEstimationPlugin{ public double estimatePowerConsumption(ResourceEvent event, JobRegistry jobRegistry, PhysicalResource resource) { double powerLekage = 0; Device pl = (Device) resource; double tempDiff = pl.getComputingResource().getThermalInterface().getRecentTemperature().getValue() - EnvironmentConditions.i5_baseLeakageTemp; if(tempDiff < 0) return 0; if(pl.getComputingResource().getThermalInterface().getRecentTemperature().getValue() > 90){ powerLekage = 0.3 * tempDiff; } else powerLekage = EnvironmentConditions.i5_leakageFactor * tempDiff; //powerConsumption = factor * pl.getComputingResource().getPowerInterface().getRecentPowerUsage().getValue(); /*Device pl = (Device) resource; if(pl.getComputingResource().getThermalInterface().getRecentTemperature().getValue() > 90){ powerConsumption = powerConsumption + 15; }*/ return powerLekage; } }