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 /opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc | |
| parent | 1de770c981498e2ca0067876470484e2cd08d780 (diff) | |
Fixed a bug that caused tasked to run much longer when supply was changed during runtime. (#386)
Diffstat (limited to 'opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc')
2 files changed, 4 insertions, 2 deletions
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; } /** |
