summaryrefslogtreecommitdiff
path: root/opendc-simulator
diff options
context:
space:
mode:
authorDante Niewenhuis <d.niewenhuis@hotmail.com>2026-01-09 17:00:50 +0100
committerGitHub <noreply@github.com>2026-01-09 17:00:50 +0100
commitc7b473279714cf83dd8a4bca0d3c9a08511d021a (patch)
tree0658ac2f033c2bb71548fb78af02a8c9d5ca090a /opendc-simulator
parent1de770c981498e2ca0067876470484e2cd08d780 (diff)
Fixed a bug that caused tasked to run much longer when supply was changed during runtime. (#386)
Diffstat (limited to 'opendc-simulator')
-rw-r--r--opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/trace/SimTraceWorkload.java4
-rw-r--r--opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/trace/TraceWorkload.java2
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;
}
/**