diff options
| author | Dante Niewenhuis <d.niewenhuis@hotmail.com> | 2024-04-17 18:17:17 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-17 18:17:17 +0200 |
| commit | d652fa2fa76556edd81d3b8087a0c943d462ec49 (patch) | |
| tree | 072c2d033704452e44ebf44ea76943bc0f0f89e5 /opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc | |
| parent | fff89d25bd3c7b874e68261d21695c473c30ed7d (diff) | |
Added support for carbon traces (#218)
* Started with the carbon trace implementation
* Moved the carbon trace system to the proper folders
Diffstat (limited to 'opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc')
4 files changed, 8 insertions, 0 deletions
diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/models/scenario/Scenario.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/models/scenario/Scenario.kt index 192bba1e..f0e5717a 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/models/scenario/Scenario.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/models/scenario/Scenario.kt @@ -30,6 +30,7 @@ public data class Scenario( val workload: WorkloadSpec, val allocationPolicy: AllocationPolicySpec, val failureModel: FailureModel?, + val carbonTracePath: String? = null, val exportModel: ExportSpec = ExportSpec(), val outputFolder: String = "output", val name: String = "", diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/models/scenario/ScenarioFactories.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/models/scenario/ScenarioFactories.kt index d806e95e..93b2a2b5 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/models/scenario/ScenarioFactories.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/models/scenario/ScenarioFactories.kt @@ -48,6 +48,7 @@ public fun getScenario(scenarioSpec: ScenarioSpec): Scenario { workload, allocationPolicy, failureModel, + scenarioSpec.carbonTracePath, exportModel, scenarioSpec.outputFolder, scenarioSpec.name, diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/models/scenario/ScenarioSpecs.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/models/scenario/ScenarioSpecs.kt index 20c8a6e0..f39b16dd 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/models/scenario/ScenarioSpecs.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/models/scenario/ScenarioSpecs.kt @@ -47,6 +47,7 @@ public data class ScenarioSpec( val workload: WorkloadSpec, val allocationPolicy: AllocationPolicySpec, val failureModel: FailureModelSpec = FailureModelSpec(), + val carbonTracePath: String? = null, val exportModel: ExportSpec = ExportSpec(), val outputFolder: String = "output", val initialSeed: Int = 0, @@ -55,6 +56,7 @@ public data class ScenarioSpec( ) { init { require(runs > 0) { "The number of runs should always be positive" } + require(carbonTracePath == null || File(carbonTracePath).exists()) { "The provided carbon trace cannot be found: $carbonTracePath" } // generate name if not provided if (name == "") { diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt index 04998309..59c11f34 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt @@ -24,6 +24,7 @@ package org.opendc.experiments.base.runner import me.tongfei.progressbar.ProgressBarBuilder import me.tongfei.progressbar.ProgressBarStyle +import org.opendc.compute.carbon.getCarbonTrace import org.opendc.compute.service.ComputeService import org.opendc.compute.service.scheduler.ComputeSchedulerEnum import org.opendc.compute.service.scheduler.createComputeScheduler @@ -118,6 +119,8 @@ public fun runScenario( setupHosts(serviceDomain, scenario.topology, optimize = true), ) + val carbonTrace = getCarbonTrace(scenario.carbonTracePath) + val partition = scenario.name + "/seed=$seed" val workloadLoader = ComputeWorkloadLoader(File(scenario.workload.pathToFile)) @@ -135,6 +138,7 @@ public fun runScenario( ), Duration.ofSeconds(scenario.exportModel.exportInterval), startTime, + carbonTrace, ), ) |
