summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimHost.kt11
-rw-r--r--opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt4
-rw-r--r--opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/ExperimentHelpers.kt4
-rw-r--r--opendc-experiments/opendc-experiments-energy21/src/main/kotlin/org/opendc/experiments/energy21/EnergyExperiment.kt4
-rw-r--r--opendc-workflow/opendc-workflow-service/src/test/kotlin/org/opendc/workflow/service/WorkflowServiceIntegrationTest.kt4
5 files changed, 15 insertions, 12 deletions
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimHost.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimHost.kt
index 540e27fe..557fa97a 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimHost.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimHost.kt
@@ -56,7 +56,7 @@ public class SimHost(
model: SimMachineModel,
override val meta: Map<String, Any>,
context: CoroutineContext,
- clock: Clock,
+ interpreter: SimResourceInterpreter,
meter: Meter,
hypervisor: SimHypervisorProvider,
scalingGovernor: ScalingGovernor,
@@ -70,12 +70,12 @@ public class SimHost(
model: SimMachineModel,
meta: Map<String, Any>,
context: CoroutineContext,
- clock: Clock,
+ interpreter: SimResourceInterpreter,
meter: Meter,
hypervisor: SimHypervisorProvider,
powerModel: PowerModel = ConstantPowerModel(0.0),
mapper: SimWorkloadMapper = SimMetaWorkloadMapper(),
- ) : this(uid, name, model, meta, context, clock, meter, hypervisor, PerformanceScalingGovernor(), SimplePowerDriver(powerModel), mapper)
+ ) : this(uid, name, model, meta, context, interpreter, meter, hypervisor, PerformanceScalingGovernor(), SimplePowerDriver(powerModel), mapper)
/**
* The [CoroutineScope] of the host bounded by the lifecycle of the host.
@@ -98,11 +98,6 @@ public class SimHost(
private var availableMemory: Long = model.memory.sumOf { it.size }
/**
- * The resource interpreter to schedule the resource interactions.
- */
- private val interpreter = SimResourceInterpreter(context, clock)
-
- /**
* The machine to run on.
*/
public val machine: SimBareMetalMachine = SimBareMetalMachine(interpreter, model, scalingDriver)
diff --git a/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt b/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt
index a6cff3ba..79489fdb 100644
--- a/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt
+++ b/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt
@@ -47,6 +47,7 @@ import org.opendc.simulator.compute.model.ProcessingNode
import org.opendc.simulator.compute.model.ProcessingUnit
import org.opendc.simulator.compute.workload.SimTraceWorkload
import org.opendc.simulator.core.runBlockingSimulation
+import org.opendc.simulator.resources.SimResourceInterpreter
import org.opendc.telemetry.sdk.metrics.export.CoroutineMetricReader
import org.opendc.telemetry.sdk.toOtelClock
import java.util.UUID
@@ -83,7 +84,8 @@ internal class SimHostTest {
.setClock(clock.toOtelClock())
.build()
- val virtDriver = SimHost(UUID.randomUUID(), "test", machineModel, emptyMap(), coroutineContext, clock, meterProvider.get("opendc-compute-simulator"), SimFairShareHypervisorProvider())
+ val interpreter = SimResourceInterpreter(coroutineContext, clock)
+ val virtDriver = SimHost(UUID.randomUUID(), "test", machineModel, emptyMap(), coroutineContext, interpreter, meterProvider.get("opendc-compute-simulator"), SimFairShareHypervisorProvider())
val duration = 5 * 60L
val vmImageA = MockImage(
UUID.randomUUID(),
diff --git a/opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/ExperimentHelpers.kt b/opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/ExperimentHelpers.kt
index 0fbb7280..0485415c 100644
--- a/opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/ExperimentHelpers.kt
+++ b/opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/ExperimentHelpers.kt
@@ -50,6 +50,7 @@ import org.opendc.simulator.compute.workload.SimTraceWorkload
import org.opendc.simulator.compute.workload.SimWorkload
import org.opendc.simulator.failures.CorrelatedFaultInjector
import org.opendc.simulator.failures.FaultInjector
+import org.opendc.simulator.resources.SimResourceInterpreter
import org.opendc.telemetry.sdk.metrics.export.CoroutineMetricReader
import org.opendc.telemetry.sdk.toOtelClock
import java.io.File
@@ -144,6 +145,7 @@ public suspend fun withComputeService(
scheduler: ComputeScheduler,
block: suspend CoroutineScope.(ComputeService) -> Unit
): Unit = coroutineScope {
+ val interpreter = SimResourceInterpreter(coroutineContext, clock)
val hosts = environmentReader
.use { it.read() }
.map { def ->
@@ -153,7 +155,7 @@ public suspend fun withComputeService(
def.model,
def.meta,
coroutineContext,
- clock,
+ interpreter,
meterProvider.get("opendc-compute-simulator"),
SimFairShareHypervisorProvider(),
def.powerModel
diff --git a/opendc-experiments/opendc-experiments-energy21/src/main/kotlin/org/opendc/experiments/energy21/EnergyExperiment.kt b/opendc-experiments/opendc-experiments-energy21/src/main/kotlin/org/opendc/experiments/energy21/EnergyExperiment.kt
index 65915cc6..2f14776a 100644
--- a/opendc-experiments/opendc-experiments-energy21/src/main/kotlin/org/opendc/experiments/energy21/EnergyExperiment.kt
+++ b/opendc-experiments/opendc-experiments-energy21/src/main/kotlin/org/opendc/experiments/energy21/EnergyExperiment.kt
@@ -49,6 +49,7 @@ import org.opendc.simulator.compute.model.ProcessingNode
import org.opendc.simulator.compute.model.ProcessingUnit
import org.opendc.simulator.compute.power.*
import org.opendc.simulator.core.runBlockingSimulation
+import org.opendc.simulator.resources.SimResourceInterpreter
import java.io.File
import java.time.Clock
import java.util.*
@@ -120,6 +121,7 @@ public class EnergyExperiment : Experiment("Energy Modeling 2021") {
block: suspend CoroutineScope.(ComputeService) -> Unit
): Unit = coroutineScope {
val model = createMachineModel()
+ val interpreter = SimResourceInterpreter(coroutineContext, clock)
val hosts = List(64) { id ->
SimHost(
UUID(0, id.toLong()),
@@ -127,7 +129,7 @@ public class EnergyExperiment : Experiment("Energy Modeling 2021") {
model,
emptyMap(),
coroutineContext,
- clock,
+ interpreter,
meterProvider.get("opendc-compute-simulator"),
SimFairShareHypervisorProvider(),
PerformanceScalingGovernor(),
diff --git a/opendc-workflow/opendc-workflow-service/src/test/kotlin/org/opendc/workflow/service/WorkflowServiceIntegrationTest.kt b/opendc-workflow/opendc-workflow-service/src/test/kotlin/org/opendc/workflow/service/WorkflowServiceIntegrationTest.kt
index a8d3a9e8..6807572b 100644
--- a/opendc-workflow/opendc-workflow-service/src/test/kotlin/org/opendc/workflow/service/WorkflowServiceIntegrationTest.kt
+++ b/opendc-workflow/opendc-workflow-service/src/test/kotlin/org/opendc/workflow/service/WorkflowServiceIntegrationTest.kt
@@ -43,6 +43,7 @@ import org.opendc.format.environment.sc18.Sc18EnvironmentReader
import org.opendc.format.trace.gwf.GwfTraceReader
import org.opendc.simulator.compute.SimSpaceSharedHypervisorProvider
import org.opendc.simulator.core.runBlockingSimulation
+import org.opendc.simulator.resources.SimResourceInterpreter
import org.opendc.telemetry.sdk.toOtelClock
import org.opendc.workflow.service.internal.WorkflowServiceImpl
import org.opendc.workflow.service.scheduler.WorkflowSchedulerMode
@@ -68,6 +69,7 @@ internal class WorkflowServiceIntegrationTest {
.setClock(clock.toOtelClock())
.build()
+ val interpreter = SimResourceInterpreter(coroutineContext, clock)
val hosts = Sc18EnvironmentReader(object {}.javaClass.getResourceAsStream("/environment.json"))
.use { it.read() }
.map { def ->
@@ -77,7 +79,7 @@ internal class WorkflowServiceIntegrationTest {
def.model,
def.meta,
coroutineContext,
- clock,
+ interpreter,
MeterProvider.noop().get("opendc-compute-simulator"),
SimSpaceSharedHypervisorProvider()
)