diff options
| author | Dante Niewenhuis <d.niewenhuis@hotmail.com> | 2026-01-09 17:00:50 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-09 17:00:50 +0100 |
| commit | c7b473279714cf83dd8a4bca0d3c9a08511d021a (patch) | |
| tree | 0658ac2f033c2bb71548fb78af02a8c9d5ca090a | |
| parent | 1de770c981498e2ca0067876470484e2cd08d780 (diff) | |
Fixed a bug that caused tasked to run much longer when supply was changed during runtime. (#386)
3 files changed, 5 insertions, 3 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 f4adaac1..8ff78dae 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 @@ -591,7 +591,7 @@ public final class ComputeService implements AutoCloseable, CarbonReceiver { public static class Builder { private final Dispatcher dispatcher; private final ComputeScheduler computeScheduler; - private Duration quantum = Duration.ofSeconds(1); + private Duration quantum = Duration.ofMillis(1); private int maxNumFailures = 10; Builder(Dispatcher dispatcher, ComputeScheduler computeScheduler) { diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/trace/SimTraceWorkload.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/trace/SimTraceWorkload.java index 5e8744d0..fd1a356e 100644 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/trace/SimTraceWorkload.java +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/trace/SimTraceWorkload.java @@ -329,7 +329,6 @@ public class SimTraceWorkload extends SimWorkload implements FlowConsumer { */ @Override public void stopWorkload() { - // If the workload is stopped due to an error or failure, calculate the wasted time for bookkeeping. if (this.totalRemainingWork > 0.0 || !this.remainingFragments.isEmpty()) { // Failure @@ -462,6 +461,7 @@ public class SimTraceWorkload extends SimWorkload implements FlowConsumer { */ @Override public void handleIncomingSupply(FlowEdge supplierEdge, double newSupply, ResourceType resourceType) { + // for cases where equal share or fixed share is used and the resource is provided despite not being used if (!this.usedResourceTypes.contains(resourceType)) { return; @@ -473,8 +473,8 @@ public class SimTraceWorkload extends SimWorkload implements FlowConsumer { this.resourcesSupplied[resourceType.ordinal()] = newSupply; long now = this.clock.millis(); - this.startOfFragment = now; long passedTime = getPassedTime(now); + this.startOfFragment = now; this.updateRemainingWork(passedTime); this.updateRemainingTime(); diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/trace/TraceWorkload.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/trace/TraceWorkload.java index 161a8041..6cf02df8 100644 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/trace/TraceWorkload.java +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/trace/TraceWorkload.java @@ -190,6 +190,8 @@ public class TraceWorkload implements Workload { this.checkpointIntervalScaling = checkpointIntervalScaling; this.scalingPolicy = scalingPolicy; this.taskId = taskId; + + this.resourceTypes[ResourceType.CPU.ordinal()] = ResourceType.CPU; } /** |
