summaryrefslogtreecommitdiff
path: root/opendc/opendc-experiments-sc20/src/main
diff options
context:
space:
mode:
authorGeorgios Andreadis <g.andreadis@student.tudelft.nl>2020-02-28 14:34:45 +0100
committerGeorgios Andreadis <g.andreadis@student.tudelft.nl>2020-02-28 14:34:45 +0100
commit3a5eac673fb67a6cff7fc79f16312db78d706322 (patch)
tree6c0e37e994d0a1ada6cef8d42d7dfbd9cdde3ccc /opendc/opendc-experiments-sc20/src/main
parent0c19b32433e2086e72e0d22595f4daa6ef04b64b (diff)
parent2ed1e47b5d82229a873febebb2d8bd3d8f5832ea (diff)
Merge branch 'refactor/domains' into 'feat/2.x'
Change from logical processes to simulation domains See merge request opendc/opendc-simulator!28
Diffstat (limited to 'opendc/opendc-experiments-sc20/src/main')
-rw-r--r--opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt25
1 files changed, 15 insertions, 10 deletions
diff --git a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt
index 3882feb7..48aca303 100644
--- a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt
+++ b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt
@@ -25,6 +25,7 @@
package com.atlarge.opendc.experiments.sc20
import com.atlarge.odcsim.SimulationEngineProvider
+import com.atlarge.odcsim.simulationContext
import com.atlarge.opendc.compute.core.Flavor
import com.atlarge.opendc.compute.core.Server
import com.atlarge.opendc.compute.core.ServerState
@@ -35,6 +36,7 @@ import com.atlarge.opendc.format.environment.sc20.Sc20EnvironmentReader
import com.atlarge.opendc.format.trace.vm.VmTraceReader
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.delay
+import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import java.io.File
import java.util.ServiceLoader
@@ -48,10 +50,6 @@ fun main(args: Array<String>) {
println("error: Please provide path to directory containing VM trace files")
return
}
-
- val environment = Sc20EnvironmentReader(object {}.javaClass.getResourceAsStream("/env/setup-small.json"))
- .use { it.read() }
-
val token = Channel<Boolean>()
val monitor = object : ServerMonitor {
@@ -61,10 +59,17 @@ fun main(args: Array<String>) {
}
val provider = ServiceLoader.load(SimulationEngineProvider::class.java).first()
- val system = provider({ ctx ->
- println(ctx.clock.instant())
+ val system = provider("test")
+ val root = system.newDomain("root")
+
+ root.launch {
+ val environment = Sc20EnvironmentReader(object {}.javaClass.getResourceAsStream("/env/setup-small.json"))
+ .use { it.construct(root) }
+
+ println(simulationContext.clock.instant())
+
val scheduler = SimpleVirtProvisioningService(
- ctx,
+ simulationContext,
environment.platforms[0].zones[0].services[ProvisioningService.Key],
Sc20HypervisorMonitor()
)
@@ -73,14 +78,14 @@ fun main(args: Array<String>) {
delay(1376314846 * 1000L)
while (reader.hasNext()) {
val (time, workload) = reader.next()
- delay(max(0, time * 1000 - ctx.clock.millis()))
+ delay(max(0, time * 1000 - simulationContext.clock.millis()))
scheduler.deploy(workload.image, monitor, Flavor(workload.image.cores, workload.image.requiredMemory))
}
token.receive()
- println(ctx.clock.instant())
- }, name = "sim")
+ println(simulationContext.clock.instant())
+ }
runBlocking {
system.run()