From 21ff6b03685a21977fa131f4c3b6cadb8b29ac9f Mon Sep 17 00:00:00 2001 From: Dante Niewenhuis Date: Thu, 25 Sep 2025 21:16:16 +0200 Subject: Updated FilterScheduler for performance (#371) * Updated FilterScheduler for performance --- .../compute/simulator/service/ComputeService.java | 52 +++++----------------- 1 file changed, 10 insertions(+), 42 deletions(-) (limited to 'opendc-compute/opendc-compute-simulator/src/main/java') diff --git a/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java index 557fb760..3f6ef73b 100644 --- a/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java +++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java @@ -193,6 +193,10 @@ public final class ComputeService implements AutoCloseable, CarbonReceiver { host.delete(task); + if (host.isEmpty()) { + setHostEmpty(host); + } + if (newState == TaskState.COMPLETED) { tasksCompleted++; addCompletedTask(task); @@ -294,6 +298,12 @@ public final class ComputeService implements AutoCloseable, CarbonReceiver { host.addListener(hostListener); } + public void setHostEmpty(SimHost host) { + HostView hv = hostToView.get(host); + + this.scheduler.setHostEmpty(hv); + } + public void addPowerSource(SimPowerSource simPowerSource) { // Check if host is already known if (powerSources.contains(simPowerSource)) { @@ -437,11 +447,6 @@ public final class ComputeService implements AutoCloseable, CarbonReceiver { void addCompletedTask(ServiceTask completedTask) { int parentId = completedTask.getId(); - // int taskId = task.getId(); - - // if (!this.completedTasks.contains(taskId)) { - // this.completedTasks.add(taskId); - // } for (int taskId : completedTask.getFlavor().getChildren()) { SchedulingRequest request = blockedTasks.get(taskId); @@ -457,24 +462,6 @@ public final class ComputeService implements AutoCloseable, CarbonReceiver { } } } - - // List requestsToRemove = new ArrayList<>(); - // - // for (SchedulingRequest request : blockedTasks) { - // request.getTask().getFlavor().updatePendingDependencies(taskId); - // - // Set pendingDependencies = request.getTask().getFlavor().getDependencies(); - // - // if (pendingDependencies.isEmpty()) { - // requestsToRemove.add(request); - // taskQueue.add(request); - // tasksPending++; - // } - // } - // - // for (SchedulingRequest request : requestsToRemove) { - // blockedTasks.remove(request); - // } } void addTerminatedTask(ServiceTask task) { @@ -493,25 +480,6 @@ public final class ComputeService implements AutoCloseable, CarbonReceiver { blockedTasks.remove(childTask.getId()); } } - - // int taskId = task.getId(); - // - // List requestsToRemove = new ArrayList<>(); - // - // if (!this.terminatedTasks.contains(taskId)) { - // this.terminatedTasks.add(taskId); - // } - // - // for (SchedulingRequest request : blockedTasks) { - // if (request.getTask().getFlavor().isInDependencies(taskId)) { - // requestsToRemove.add(request); - // request.getTask().setState(TaskState.TERMINATED); - // } - // } - // - // for (SchedulingRequest request : requestsToRemove) { - // blockedTasks.remove(request); - // } } void delete(ServiceFlavor flavor) { -- cgit v1.2.3