diff options
| author | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2021-09-17 16:08:41 +0200 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2021-09-19 14:02:51 +0200 |
| commit | 29e52ae17bd567070b52e0bcd3c254ee7491189a (patch) | |
| tree | 66d0c968657db7740e0489190c4ad4e50c215ebe /opendc-compute | |
| parent | 3d68aaf17fc8836f7b2bde0d874929cb58c9a8ca (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')
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) } } |
