summaryrefslogtreecommitdiff
path: root/opendc-compute/opendc-compute-workload/src/main
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-09-17 16:08:41 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-09-19 14:02:51 +0200
commit29e52ae17bd567070b52e0bcd3c254ee7491189a (patch)
tree66d0c968657db7740e0489190c4ad4e50c215ebe /opendc-compute/opendc-compute-workload/src/main
parent3d68aaf17fc8836f7b2bde0d874929cb58c9a8ca (diff)
feat(capelin): Support creating CPU-optimized topology
This change adds support for creating a topology that is CPU-optimized for simulation. This means that all the CPU resources of a machine are merged into a single large CPU in order to reduce simulation time.
Diffstat (limited to 'opendc-compute/opendc-compute-workload/src/main')
-rw-r--r--opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkloadRunner.kt4
-rw-r--r--opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/topology/TopologyHelpers.kt4
2 files changed, 5 insertions, 3 deletions
diff --git a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkloadRunner.kt b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkloadRunner.kt
index 29d84a9a..6da0f49a 100644
--- a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkloadRunner.kt
+++ b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkloadRunner.kt
@@ -154,9 +154,10 @@ public class ComputeWorkloadRunner(
* Register a host for this simulation.
*
* @param spec The definition of the host.
+ * @param optimize Merge the CPU resources of the host into a single CPU resource.
* @return The [SimHost] that has been constructed by the runner.
*/
- public fun registerHost(spec: HostSpec): SimHost {
+ public fun registerHost(spec: HostSpec, optimize: Boolean = false): SimHost {
val resource = Resource.builder()
.put(HOST_ID, spec.uid.toString())
.put(HOST_NAME, spec.name)
@@ -182,6 +183,7 @@ public class ComputeWorkloadRunner(
spec.hypervisor,
powerDriver = spec.powerDriver,
interferenceDomain = interferenceModel?.newDomain(),
+ optimize = optimize
)
hosts.add(host)
diff --git a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/topology/TopologyHelpers.kt b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/topology/TopologyHelpers.kt
index 09159a93..74f9a1f8 100644
--- a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/topology/TopologyHelpers.kt
+++ b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/topology/TopologyHelpers.kt
@@ -28,9 +28,9 @@ import org.opendc.compute.workload.ComputeWorkloadRunner
/**
* Apply the specified [topology] to the given [ComputeWorkloadRunner].
*/
-public fun ComputeWorkloadRunner.apply(topology: Topology) {
+public fun ComputeWorkloadRunner.apply(topology: Topology, optimize: Boolean = false) {
val hosts = topology.resolve()
for (spec in hosts) {
- registerHost(spec)
+ registerHost(spec, optimize)
}
}