summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-09-19 13:59:33 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-09-19 14:02:52 +0200
commit76a0f8889a4990108bc7906556dec6381647404b (patch)
tree7977e81ec34ce7f57d8b14a717ccb63f54cd03cb
parent6502fb752a6f80695c024b8904d7523c420ebdda (diff)
refactor(simulator): Remove dependency on SnakeYaml
This change removes the dependency on SnakeYaml for the simulator. It was only required for a very small component of the simulator and therefore does not justify bringing in such a dependency.
-rw-r--r--gradle/libs.versions.toml2
-rw-r--r--opendc-simulator/opendc-simulator-compute/build.gradle.kts1
-rw-r--r--opendc-simulator/opendc-simulator-compute/src/main/kotlin/org/opendc/simulator/compute/power/InterpolationPowerModel.kt13
-rw-r--r--opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/power/PowerModelTest.kt3
4 files changed, 2 insertions, 17 deletions
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 11580338..82da905c 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -20,7 +20,6 @@ parquet = "1.12.0"
progressbar = "0.9.0"
sentry = "5.1.2"
slf4j = "1.7.32"
-yaml = "1.29"
[libraries]
# Kotlin
@@ -58,7 +57,6 @@ jackson-module-kotlin = { module = "com.fasterxml.jackson.module:jackson-module-
jackson-datatype-jsr310 = { module = "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", version.ref = "jackson" }
jackson-dataformat-csv = { module = "com.fasterxml.jackson.dataformat:jackson-dataformat-csv", version.ref = "jackson" }
parquet = { module = "org.apache.parquet:parquet-avro", version.ref = "parquet" }
-yaml = { module = "org.yaml:snakeyaml", version.ref = "yaml" }
config = { module = "com.typesafe:config", version.ref = "config" }
# HTTP client
diff --git a/opendc-simulator/opendc-simulator-compute/build.gradle.kts b/opendc-simulator/opendc-simulator-compute/build.gradle.kts
index 74384480..7d06ee62 100644
--- a/opendc-simulator/opendc-simulator-compute/build.gradle.kts
+++ b/opendc-simulator/opendc-simulator-compute/build.gradle.kts
@@ -36,5 +36,4 @@ dependencies {
api(projects.opendcSimulator.opendcSimulatorNetwork)
implementation(projects.opendcSimulator.opendcSimulatorCore)
implementation(projects.opendcUtils)
- implementation(libs.yaml)
}
diff --git a/opendc-simulator/opendc-simulator-compute/src/main/kotlin/org/opendc/simulator/compute/power/InterpolationPowerModel.kt b/opendc-simulator/opendc-simulator-compute/src/main/kotlin/org/opendc/simulator/compute/power/InterpolationPowerModel.kt
index 0c995f06..2694700c 100644
--- a/opendc-simulator/opendc-simulator-compute/src/main/kotlin/org/opendc/simulator/compute/power/InterpolationPowerModel.kt
+++ b/opendc-simulator/opendc-simulator-compute/src/main/kotlin/org/opendc/simulator/compute/power/InterpolationPowerModel.kt
@@ -22,7 +22,6 @@
package org.opendc.simulator.compute.power
-import org.yaml.snakeyaml.Yaml
import kotlin.math.ceil
import kotlin.math.floor
import kotlin.math.max
@@ -37,8 +36,6 @@ import kotlin.math.min
* @see <a href="http://www.spec.org/power_ssj2008/results/res2011q1/">Machines used in the SPEC benchmark</a>
*/
public class InterpolationPowerModel(private val powerValues: List<Double>) : PowerModel {
- public constructor(hardwareName: String) : this(loadAveragePowerValue(hardwareName))
-
public override fun computePower(utilization: Double): Double {
val clampedUtilization = min(1.0, max(0.0, utilization))
val utilizationFlr = floor(clampedUtilization * 10).toInt()
@@ -63,14 +60,4 @@ public class InterpolationPowerModel(private val powerValues: List<Double>) : Po
* @return the power consumption for the given utilization percentage
*/
private fun getAveragePowerValue(index: Int): Double = powerValues[index]
-
- private companion object {
- private fun loadAveragePowerValue(hardwareName: String, path: String = "spec_machines.yml"): List<Double> {
- val content = this::class
- .java.classLoader
- .getResourceAsStream(path)
- val hardwareToAveragePowerValues: Map<String, List<Double>> = Yaml().load(content)
- return hardwareToAveragePowerValues.getOrDefault(hardwareName, listOf())
- }
- }
}
diff --git a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/power/PowerModelTest.kt b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/power/PowerModelTest.kt
index ac2ed303..7852534a 100644
--- a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/power/PowerModelTest.kt
+++ b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/power/PowerModelTest.kt
@@ -61,7 +61,8 @@ internal class PowerModelTest {
@Test
fun `compute power draw by the SPEC benchmark model`() {
- val powerModel = InterpolationPowerModel("IBMx3550M3_XeonX5675")
+ val ibm = listOf(58.4, 98.0, 109.0, 118.0, 128.0, 140.0, 153.0, 170.0, 189.0, 205.0, 222.0)
+ val powerModel = InterpolationPowerModel(ibm)
assertAll(
{ assertEquals(58.4, powerModel.computePower(0.0)) },