summaryrefslogtreecommitdiff
path: root/simulator/opendc-experiments/opendc-experiments-sc18/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'simulator/opendc-experiments/opendc-experiments-sc18/src/main')
-rw-r--r--simulator/opendc-experiments/opendc-experiments-sc18/src/main/kotlin/org/opendc/experiments/sc18/UnderspecificationExperiment.kt52
-rw-r--r--simulator/opendc-experiments/opendc-experiments-sc18/src/main/kotlin/org/opendc/experiments/sc18/WorkflowMetrics.kt2
2 files changed, 27 insertions, 27 deletions
diff --git a/simulator/opendc-experiments/opendc-experiments-sc18/src/main/kotlin/org/opendc/experiments/sc18/UnderspecificationExperiment.kt b/simulator/opendc-experiments/opendc-experiments-sc18/src/main/kotlin/org/opendc/experiments/sc18/UnderspecificationExperiment.kt
index 7b9d70ed..9e305b3d 100644
--- a/simulator/opendc-experiments/opendc-experiments-sc18/src/main/kotlin/org/opendc/experiments/sc18/UnderspecificationExperiment.kt
+++ b/simulator/opendc-experiments/opendc-experiments-sc18/src/main/kotlin/org/opendc/experiments/sc18/UnderspecificationExperiment.kt
@@ -26,23 +26,22 @@ import kotlinx.coroutines.*
import kotlinx.coroutines.test.TestCoroutineScope
import org.opendc.compute.service.ComputeService
import org.opendc.compute.service.scheduler.NumberOfActiveServersAllocationPolicy
-import org.opendc.compute.simulator.SimHostProvisioner
+import org.opendc.compute.simulator.SimHost
import org.opendc.format.environment.sc18.Sc18EnvironmentReader
import org.opendc.format.trace.gwf.GwfTraceReader
import org.opendc.harness.dsl.Experiment
import org.opendc.harness.dsl.anyOf
-import org.opendc.metal.service.ProvisioningService
import org.opendc.simulator.compute.SimSpaceSharedHypervisorProvider
import org.opendc.simulator.utils.DelayControllerClockAdapter
import org.opendc.trace.core.EventTracer
import org.opendc.trace.core.enable
-import org.opendc.workflows.service.StageWorkflowService
-import org.opendc.workflows.service.WorkflowEvent
-import org.opendc.workflows.service.WorkflowSchedulerMode
-import org.opendc.workflows.service.stage.job.NullJobAdmissionPolicy
-import org.opendc.workflows.service.stage.job.SubmissionTimeJobOrderPolicy
-import org.opendc.workflows.service.stage.task.NullTaskEligibilityPolicy
-import org.opendc.workflows.service.stage.task.SubmissionTimeTaskOrderPolicy
+import org.opendc.workflow.service.WorkflowEvent
+import org.opendc.workflow.service.WorkflowService
+import org.opendc.workflow.service.scheduler.WorkflowSchedulerMode
+import org.opendc.workflow.service.scheduler.job.NullJobAdmissionPolicy
+import org.opendc.workflow.service.scheduler.job.SubmissionTimeJobOrderPolicy
+import org.opendc.workflow.service.scheduler.task.NullTaskEligibilityPolicy
+import org.opendc.workflow.service.scheduler.task.SubmissionTimeTaskOrderPolicy
import java.io.File
import java.io.FileInputStream
import kotlin.math.max
@@ -84,16 +83,20 @@ public class UnderspecificationExperiment : Experiment("underspecification") {
}
testScope.launch {
- val environment = Sc18EnvironmentReader(FileInputStream(File(environment)))
- .use { it.construct(testScope, clock) }
+ val hosts = Sc18EnvironmentReader(FileInputStream(File(environment)))
+ .use { it.read() }
+ .map { def ->
+ SimHost(
+ def.uid,
+ def.name,
+ def.model,
+ def.meta,
+ testScope.coroutineContext,
+ clock,
+ SimSpaceSharedHypervisorProvider()
+ )
+ }
- val bareMetal = environment.platforms[0].zones[0].services[ProvisioningService]
-
- // Wait for the bare metal nodes to be spawned
- delay(10)
-
- val provisioner = SimHostProvisioner(testScope.coroutineContext, bareMetal, SimSpaceSharedHypervisorProvider())
- val hosts = provisioner.provisionAll()
val compute = ComputeService(
testScope.coroutineContext,
clock,
@@ -103,11 +106,8 @@ public class UnderspecificationExperiment : Experiment("underspecification") {
hosts.forEach { compute.addHost(it) }
- // Wait for the hypervisors to be spawned
- delay(10)
-
- val scheduler = StageWorkflowService(
- testScope,
+ val scheduler = WorkflowService(
+ testScope.coroutineContext,
clock,
tracer,
compute.newClient(),
@@ -121,9 +121,9 @@ public class UnderspecificationExperiment : Experiment("underspecification") {
val reader = GwfTraceReader(File(trace))
while (reader.hasNext()) {
- val (time, job) = reader.next()
- delay(max(0, time * 1000 - clock.millis()))
- scheduler.submit(job)
+ val entry = reader.next()
+ delay(max(0, entry.start * 1000 - clock.millis()))
+ scheduler.submit(entry.workload)
}
}
diff --git a/simulator/opendc-experiments/opendc-experiments-sc18/src/main/kotlin/org/opendc/experiments/sc18/WorkflowMetrics.kt b/simulator/opendc-experiments/opendc-experiments-sc18/src/main/kotlin/org/opendc/experiments/sc18/WorkflowMetrics.kt
index dbd04b87..a8356888 100644
--- a/simulator/opendc-experiments/opendc-experiments-sc18/src/main/kotlin/org/opendc/experiments/sc18/WorkflowMetrics.kt
+++ b/simulator/opendc-experiments/opendc-experiments-sc18/src/main/kotlin/org/opendc/experiments/sc18/WorkflowMetrics.kt
@@ -24,7 +24,7 @@ package org.opendc.experiments.sc18
import org.opendc.trace.core.EventStream
import org.opendc.trace.core.onEvent
-import org.opendc.workflows.service.WorkflowEvent
+import org.opendc.workflow.service.WorkflowEvent
import java.util.*
import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine