summaryrefslogtreecommitdiff
path: root/opendc-experiments/opendc-experiments-energy21/src
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-08-22 14:07:59 +0200
committerGitHub <noreply@github.com>2021-08-22 14:07:59 +0200
commitf03129779a1ec60e8689ad9c7fd5ad488c66f54c (patch)
tree34dfc78f84c5f463fda7f97957cc403411b4f166 /opendc-experiments/opendc-experiments-energy21/src
parentf84dc9f8b8b4eaa7621f9ee4fc83ef38a85c431b (diff)
parentb8f64c1d3df2c990df8941cd036222fab2def9fa (diff)
merge: Follow OpenStack's Nova scheduler implementation more closely
This pull request updates the FilterScheduler in OpenDC Compute to follow OpenStack's Nova scheduler implementation more closely. * Normalize weights returned by weighers * Implement RAM and vCPU overcomitting * Implement VCPU filter **Breaking API Changes** * `MemoryFilter` and `CoreMemoryFilter` renamed to `RamFilter` and `CoreRamFilter` * `ComputeCapabilityFilter` replaced by `VCpuFilter` and `RamFilter`
Diffstat (limited to 'opendc-experiments/opendc-experiments-energy21/src')
-rw-r--r--opendc-experiments/opendc-experiments-energy21/src/main/kotlin/org/opendc/experiments/energy21/EnergyExperiment.kt9
1 files changed, 5 insertions, 4 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 8fc4f6b8..e64e20a2 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
@@ -32,9 +32,9 @@ import mu.KotlinLogging
import org.opendc.compute.service.ComputeService
import org.opendc.compute.service.scheduler.ComputeScheduler
import org.opendc.compute.service.scheduler.FilterScheduler
-import org.opendc.compute.service.scheduler.filters.ComputeCapabilitiesFilter
import org.opendc.compute.service.scheduler.filters.ComputeFilter
-import org.opendc.compute.service.scheduler.weights.RandomWeigher
+import org.opendc.compute.service.scheduler.filters.RamFilter
+import org.opendc.compute.service.scheduler.filters.VCpuFilter
import org.opendc.compute.simulator.SimHost
import org.opendc.experiments.capelin.*
import org.opendc.experiments.capelin.monitor.ParquetExperimentMonitor
@@ -81,8 +81,9 @@ public class EnergyExperiment : Experiment("Energy Modeling 2021") {
override fun doRun(repeat: Int): Unit = runBlockingSimulation {
val chan = Channel<Unit>(Channel.CONFLATED)
val allocationPolicy = FilterScheduler(
- filters = listOf(ComputeFilter(), ComputeCapabilitiesFilter()),
- weighers = listOf(RandomWeigher(Random(0)) to 1.0)
+ filters = listOf(ComputeFilter(), VCpuFilter(1.0), RamFilter(1.0)),
+ weighers = listOf(),
+ subsetSize = Int.MAX_VALUE
)
val meterProvider: MeterProvider = createMeterProvider(clock)