summaryrefslogtreecommitdiff
path: root/opendc-simulator/opendc-simulator-compute
diff options
context:
space:
mode:
Diffstat (limited to 'opendc-simulator/opendc-simulator-compute')
-rw-r--r--opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/VirtualMachine.java1
-rw-r--r--opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/trace/SimTraceWorkload.java5
-rw-r--r--opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/trace/TraceWorkload.java23
-rw-r--r--opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/trace/scaling/NoDelayScaling.java6
4 files changed, 26 insertions, 9 deletions
diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/VirtualMachine.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/VirtualMachine.java
index 49326ba5..7632b503 100644
--- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/VirtualMachine.java
+++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/VirtualMachine.java
@@ -194,7 +194,6 @@ public final class VirtualMachine extends SimWorkload implements FlowSupplier {
}
this.closeNode();
-
if (this.completion != null) {
this.completion.accept(stopWorkloadCause);
this.completion = null;
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 457a0807..9e7f170c 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
@@ -52,6 +52,8 @@ public class SimTraceWorkload extends SimWorkload implements FlowConsumer {
private final ScalingPolicy scalingPolicy;
+ private final String taskName;
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Basic Getters and Setters
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -91,6 +93,9 @@ public class SimTraceWorkload extends SimWorkload implements FlowConsumer {
this.scalingPolicy = workload.getScalingPolicy();
this.remainingFragments = new LinkedList<>(workload.getFragments());
this.fragmentIndex = 0;
+ this.taskName = workload.getTaskName();
+
+ this.startOfFragment = this.clock.millis();
new FlowEdge(this, supplier);
}
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 4a06d019..9c31a833 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
@@ -39,6 +39,12 @@ public class TraceWorkload implements Workload {
private final double maxCpuDemand;
private final int maxCoreCount;
+ public String getTaskName() {
+ return taskName;
+ }
+
+ private final String taskName;
+
public ScalingPolicy getScalingPolicy() {
return scalingPolicy;
}
@@ -50,12 +56,14 @@ public class TraceWorkload implements Workload {
long checkpointInterval,
long checkpointDuration,
double checkpointIntervalScaling,
- ScalingPolicy scalingPolicy) {
+ ScalingPolicy scalingPolicy,
+ String taskName) {
this.fragments = fragments;
this.checkpointInterval = checkpointInterval;
this.checkpointDuration = checkpointDuration;
this.checkpointIntervalScaling = checkpointIntervalScaling;
this.scalingPolicy = scalingPolicy;
+ this.taskName = taskName;
// TODO: remove if we decide not to use it.
this.maxCpuDemand = fragments.stream()
@@ -120,8 +128,9 @@ public class TraceWorkload implements Workload {
long checkpointInterval,
long checkpointDuration,
double checkpointIntervalScaling,
- ScalingPolicy scalingPolicy) {
- return new Builder(checkpointInterval, checkpointDuration, checkpointIntervalScaling, scalingPolicy);
+ ScalingPolicy scalingPolicy,
+ String taskName) {
+ return new Builder(checkpointInterval, checkpointDuration, checkpointIntervalScaling, scalingPolicy, taskName);
}
public static final class Builder {
@@ -130,6 +139,7 @@ public class TraceWorkload implements Workload {
private final long checkpointDuration;
private final double checkpointIntervalScaling;
private final ScalingPolicy scalingPolicy;
+ private final String taskName;
/**
* Construct a new {@link Builder} instance.
@@ -138,12 +148,14 @@ public class TraceWorkload implements Workload {
long checkpointInterval,
long checkpointDuration,
double checkpointIntervalScaling,
- ScalingPolicy scalingPolicy) {
+ ScalingPolicy scalingPolicy,
+ String taskName) {
this.fragments = new ArrayList<>();
this.checkpointInterval = checkpointInterval;
this.checkpointDuration = checkpointDuration;
this.checkpointIntervalScaling = checkpointIntervalScaling;
this.scalingPolicy = scalingPolicy;
+ this.taskName = taskName;
}
/**
@@ -166,7 +178,8 @@ public class TraceWorkload implements Workload {
this.checkpointInterval,
this.checkpointDuration,
this.checkpointIntervalScaling,
- this.scalingPolicy);
+ this.scalingPolicy,
+ this.taskName);
}
}
}
diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/trace/scaling/NoDelayScaling.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/trace/scaling/NoDelayScaling.java
index 4230bb55..d0c1cc2e 100644
--- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/trace/scaling/NoDelayScaling.java
+++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/trace/scaling/NoDelayScaling.java
@@ -32,16 +32,16 @@ package org.opendc.simulator.compute.workload.trace.scaling;
public class NoDelayScaling implements ScalingPolicy {
@Override
public double getFinishedWork(double cpuFreqDemand, double cpuFreqSupplied, long passedTime) {
- return cpuFreqDemand * passedTime;
+ return passedTime;
}
@Override
public long getRemainingDuration(double cpuFreqDemand, double cpuFreqSupplied, double remainingWork) {
- return (long) (remainingWork / cpuFreqDemand);
+ return (long) remainingWork;
}
@Override
public double getRemainingWork(double cpuFreqDemand, long duration) {
- return cpuFreqDemand * duration;
+ return duration;
}
}