summaryrefslogtreecommitdiff
path: root/simulator/opendc-runner-web/src
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2020-11-11 00:12:17 +0100
committerFabian Mastenbroek <mail.fabianm@gmail.com>2020-11-11 00:40:00 +0100
commite6c36a309c7372bb0de3ae4a3277e91c1ee4913b (patch)
tree399969e871ef89f427707c927ff5e65d4c14eba8 /simulator/opendc-runner-web/src
parentefd57bc38aafdbaebe7978fcb3428fa8b0eabd0c (diff)
Take into account energy consumption of CPUs in topology
Diffstat (limited to 'simulator/opendc-runner-web/src')
-rw-r--r--simulator/opendc-runner-web/src/main/kotlin/org/opendc/runner/web/TopologyParser.kt8
1 files changed, 4 insertions, 4 deletions
diff --git a/simulator/opendc-runner-web/src/main/kotlin/org/opendc/runner/web/TopologyParser.kt b/simulator/opendc-runner-web/src/main/kotlin/org/opendc/runner/web/TopologyParser.kt
index 80bd20f7..8bd1eefb 100644
--- a/simulator/opendc-runner-web/src/main/kotlin/org/opendc/runner/web/TopologyParser.kt
+++ b/simulator/opendc-runner-web/src/main/kotlin/org/opendc/runner/web/TopologyParser.kt
@@ -81,6 +81,9 @@ public class TopologyParser(private val collection: MongoCollection<Document>, p
memory.get("sizeMb", Number::class.java).toLong()
)
}
+
+ val energyConsumptionW = machine.getList("cpus", Document::class.java).sumBy { it.getInteger("energyConsumptionW") }.toDouble()
+
nodes.add(
SimBareMetalDriver(
coroutineScope,
@@ -89,10 +92,7 @@ public class TopologyParser(private val collection: MongoCollection<Document>, p
"node-$clusterId-$position",
mapOf(NODE_CLUSTER to clusterId),
SimMachineModel(processors, memoryUnits),
- // For now we assume a simple linear load model with an idle draw of ~200W and a maximum
- // power draw of 350W.
- // Source: https://stackoverflow.com/questions/6128960
- LinearLoadPowerModel(200.0, 350.0)
+ LinearLoadPowerModel(energyConsumptionW, 2 * energyConsumptionW)
)
)
}