diff options
Diffstat (limited to 'simulator/opendc-simulator')
| -rw-r--r-- | simulator/opendc-simulator/opendc-simulator-compute/src/main/kotlin/org/opendc/simulator/compute/SimAbstractMachine.kt | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/simulator/opendc-simulator/opendc-simulator-compute/src/main/kotlin/org/opendc/simulator/compute/SimAbstractMachine.kt b/simulator/opendc-simulator/opendc-simulator-compute/src/main/kotlin/org/opendc/simulator/compute/SimAbstractMachine.kt index 1bdbb7e8..39ae34fe 100644 --- a/simulator/opendc-simulator/opendc-simulator-compute/src/main/kotlin/org/opendc/simulator/compute/SimAbstractMachine.kt +++ b/simulator/opendc-simulator/opendc-simulator-compute/src/main/kotlin/org/opendc/simulator/compute/SimAbstractMachine.kt @@ -38,8 +38,6 @@ import kotlin.coroutines.CoroutineContext /** * Abstract implementation of the [SimMachine] interface. - * - * @param context The [CoroutineContext] in which the machine runs. */ public abstract class SimAbstractMachine(private val clock: Clock) : SimMachine { private val _usage = MutableStateFlow(0.0) @@ -47,6 +45,13 @@ public abstract class SimAbstractMachine(private val clock: Clock) : SimMachine get() = _usage /** + * The speed of the CPU cores. + */ + public val speed: List<Double> + get() = _speed + private var _speed = mutableListOf<Double>() + + /** * A flag to indicate that the machine is terminated. */ private var isTerminated = false @@ -89,13 +94,16 @@ public abstract class SimAbstractMachine(private val clock: Clock) : SimMachine val ctx = Context(resources, meta + mapOf("coroutine-context" to context)) val totalCapacity = model.cpus.sumByDouble { it.frequency } + _speed = MutableList(model.cpus.size) { 0.0 } + workload.onStart(ctx) for ((cpu, source) in resources) { val consumer = workload.getConsumer(ctx, cpu) val job = source.speed .onEach { - _usage.value = resources.values.sumByDouble { it.speed.value } / totalCapacity + _speed[cpu.id] = source.speed.value + _usage.value = _speed.sum() / totalCapacity } .launchIn(this) |
