From b20dd5ebb48465470b9632dc92ecfb1794a8a4bf Mon Sep 17 00:00:00 2001 From: Sacheendra Talluri Date: Thu, 27 Mar 2025 16:14:39 +0100 Subject: Support carbon forecasting in timeshift (#327) * Remove task from scheduler bookkeeping after failure * Support carbon forecasting in timeshift * Register scheduler and carbonmodel in context * Preliminary working task stopping; carbon intensity bug * Working carbon based stop. Two timeshift thresholds * Add a pause state task and guest * Move task stopper to allocation spec * Start tracking num pauses --- .../main/java/org/opendc/simulator/compute/power/CarbonModel.java | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'opendc-simulator/opendc-simulator-compute/src') diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/CarbonModel.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/CarbonModel.java index 3bbdba66..3cf36ece 100644 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/CarbonModel.java +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/CarbonModel.java @@ -133,6 +133,12 @@ public class CarbonModel extends FlowNode { receiver.updateCarbonIntensity(this.current_fragment.getCarbonIntensity()); } + public double[] getForecast(int forecastSize) { + return this.fragments.subList(this.fragment_index + 1, this.fragment_index + forecastSize).stream() + .mapToDouble(CarbonFragment::getCarbonIntensity) + .toArray(); + } + public static List castList(List list, Class clazz) { List result = new ArrayList<>(); for (T element : list) { -- cgit v1.2.3