diff options
| author | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2021-06-21 14:34:10 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-21 14:34:10 +0200 |
| commit | ba32561e4b0e00c00d528df615a58e396e0fddc0 (patch) | |
| tree | 06bbb8161910a81b3dc1160b180650660bc50be4 /opendc-experiments/opendc-experiments-capelin/src | |
| parent | b8b0f39028af90fa54b42a00214b2ea9a5e48e2e (diff) | |
| parent | 966715d7df139a431293f5c2fc67916fbcc1ecfb (diff) | |
simulator: Optimize resource interpreter implementation
This pull request implements several optimizations in the resource interpreter implementation.
* Interpreter is now shared across hosts in experiments
* Interpreter allocations are pooled where possible
* Resource lifecycle concept is eliminated
* Optimized flag management in interpreter
Diffstat (limited to 'opendc-experiments/opendc-experiments-capelin/src')
| -rw-r--r-- | opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/ExperimentHelpers.kt | 4 |
1 files changed, 3 insertions, 1 deletions
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 |
