summaryrefslogtreecommitdiff
path: root/opendc-compute/opendc-compute-simulator/src/main/java
diff options
context:
space:
mode:
authorDante Niewenhuis <d.niewenhuis@hotmail.com>2025-09-25 21:16:16 +0200
committerGitHub <noreply@github.com>2025-09-25 21:16:16 +0200
commit21ff6b03685a21977fa131f4c3b6cadb8b29ac9f (patch)
tree110208d7bb2b519b5eb4a59107a087541acd16f9 /opendc-compute/opendc-compute-simulator/src/main/java
parente84bb565d16b59a4e4fd3d48e025853ca03ed18e (diff)
Updated FilterScheduler for performance (#371)
* Updated FilterScheduler for performance
Diffstat (limited to 'opendc-compute/opendc-compute-simulator/src/main/java')
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java52
1 files changed, 10 insertions, 42 deletions
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<SchedulingRequest> requestsToRemove = new ArrayList<>();
- //
- // for (SchedulingRequest request : blockedTasks) {
- // request.getTask().getFlavor().updatePendingDependencies(taskId);
- //
- // Set<Integer> 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<SchedulingRequest> 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) {