diff options
| author | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2021-05-04 21:43:46 +0200 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2021-05-05 12:12:30 +0200 |
| commit | ad65a05e3f41850807f95f7d643496a4d39a6197 (patch) | |
| tree | 238b0fc83a5836d3fc08e3e888cec298eb8e8cd1 /opendc-experiments/opendc-experiments-energy21/src/main | |
| parent | 6466d5e1b8da4582434f02dff2ab56e8f736ef85 (diff) | |
exp: Add support for experiment configuration
This change adds support for configuring the experiments via
configuration files using the TypeSafe config library. In the future, we
will also integrate support for configuration into the harness.
Diffstat (limited to 'opendc-experiments/opendc-experiments-energy21/src/main')
2 files changed, 13 insertions, 9 deletions
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 772c9bcc..7460a1e7 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 @@ -22,6 +22,7 @@ package org.opendc.experiments.energy21 +import com.typesafe.config.ConfigFactory import io.opentelemetry.api.metrics.MeterProvider import io.opentelemetry.sdk.metrics.SdkMeterProvider import io.opentelemetry.sdk.metrics.export.MetricProducer @@ -65,14 +66,9 @@ public class EnergyExperiment : Experiment("Energy Modeling 2021") { private val logger = KotlinLogging.logger {} /** - * The path to where the traces are located. + * The configuration to use. */ - private val tracePath by anyOf(File("input/traces/")) - - /** - * The path to where the output results should be written. - */ - private val outputPath by anyOf(File("output/")) + private val config = ConfigFactory.load().getConfig("opendc.experiments.energy21") /** * The traces to test. @@ -96,8 +92,8 @@ public class EnergyExperiment : Experiment("Energy Modeling 2021") { .setClock(clock.toOtelClock()) .build() - val monitor = ParquetExperimentMonitor(outputPath, "power_model=$powerModel/run_id=$repeat", 4096) - val trace = Sc20StreamingParquetTraceReader(File(tracePath, trace), random = Random(1).asKotlinRandom()) + val monitor = ParquetExperimentMonitor(File(config.getString("output-path")), "power_model=$powerModel/run_id=$repeat", 4096) + val trace = Sc20StreamingParquetTraceReader(File(config.getString("trace-path"), trace), random = Random(1).asKotlinRandom()) withComputeService(clock, meterProvider, allocationPolicy) { scheduler -> withMonitor(monitor, clock, meterProvider as MetricProducer, scheduler) { diff --git a/opendc-experiments/opendc-experiments-energy21/src/main/resources/application.conf b/opendc-experiments/opendc-experiments-energy21/src/main/resources/application.conf new file mode 100644 index 00000000..3e011862 --- /dev/null +++ b/opendc-experiments/opendc-experiments-energy21/src/main/resources/application.conf @@ -0,0 +1,8 @@ +# Default configuration for the energy experiments +opendc.experiments.energy21 { + # Path to the directory containing the input traces + trace-path = input/traces + + # Path to the output directory to write the results to + output-path = output +} |
