summaryrefslogtreecommitdiff
path: root/opendc-experiments/opendc-experiments-energy21/src/main
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-06-02 23:23:55 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-06-03 10:37:34 +0200
commit84468f4e3a331d7ea073ac7033b3d9937168ed9f (patch)
tree6f596eef8a39411f9fba3b3c845112d80f47b93b /opendc-experiments/opendc-experiments-energy21/src/main
parent1ee02377aca356a99506ac247b376d7cf070048d (diff)
simulator: Split CPUFreq subsystem in compute simulator
This change splits the functionality present in the CPUFreq subsystem of the compute simulation. Currently, the DVFS functionality is embedded in SimBareMetalMachine. However, this functionality should not exist within the firmware layer of a machine. Instead, the operating system should perform this logic (in OpenDC this should be the hypervisor). Furthermore, this change moves the scaling driver into the power package. The power driver is a machine/firmware specific implementation that computes the power consumption of a machine.
Diffstat (limited to 'opendc-experiments/opendc-experiments-energy21/src/main')
-rw-r--r--opendc-experiments/opendc-experiments-energy21/src/main/kotlin/org/opendc/experiments/energy21/EnergyExperiment.kt18
1 files changed, 9 insertions, 9 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 7460a1e7..37e10580 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
@@ -173,23 +173,23 @@ public class EnergyExperiment : Experiment("Energy Modeling 2021") {
*/
public enum class PowerModelType {
CUBIC {
- override val driver: ScalingDriver = SimpleScalingDriver(CubicPowerModel(206.0, 56.4))
+ override val driver: PowerDriver = SimplePowerDriver(CubicPowerModel(206.0, 56.4))
},
LINEAR {
- override val driver: ScalingDriver = SimpleScalingDriver(LinearPowerModel(206.0, 56.4))
+ override val driver: PowerDriver = SimplePowerDriver(LinearPowerModel(206.0, 56.4))
},
SQRT {
- override val driver: ScalingDriver = SimpleScalingDriver(SqrtPowerModel(206.0, 56.4))
+ override val driver: PowerDriver = SimplePowerDriver(SqrtPowerModel(206.0, 56.4))
},
SQUARE {
- override val driver: ScalingDriver = SimpleScalingDriver(SquarePowerModel(206.0, 56.4))
+ override val driver: PowerDriver = SimplePowerDriver(SquarePowerModel(206.0, 56.4))
},
INTERPOLATION {
- override val driver: ScalingDriver = SimpleScalingDriver(
+ override val driver: PowerDriver = SimplePowerDriver(
InterpolationPowerModel(
listOf(56.4, 100.0, 107.0, 117.0, 127.0, 138.0, 149.0, 162.0, 177.0, 191.0, 206.0)
)
@@ -197,17 +197,17 @@ public class EnergyExperiment : Experiment("Energy Modeling 2021") {
},
MSE {
- override val driver: ScalingDriver = SimpleScalingDriver(MsePowerModel(206.0, 56.4, 1.4))
+ override val driver: PowerDriver = SimplePowerDriver(MsePowerModel(206.0, 56.4, 1.4))
},
ASYMPTOTIC {
- override val driver: ScalingDriver = SimpleScalingDriver(AsymptoticPowerModel(206.0, 56.4, 0.3, false))
+ override val driver: PowerDriver = SimplePowerDriver(AsymptoticPowerModel(206.0, 56.4, 0.3, false))
},
ASYMPTOTIC_DVFS {
- override val driver: ScalingDriver = SimpleScalingDriver(AsymptoticPowerModel(206.0, 56.4, 0.3, true))
+ override val driver: PowerDriver = SimplePowerDriver(AsymptoticPowerModel(206.0, 56.4, 0.3, true))
};
- public abstract val driver: ScalingDriver
+ public abstract val driver: PowerDriver
}
}