summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-runner/src/main/kotlin
diff options
context:
space:
mode:
authorDante Niewenhuis <d.niewenhuis@hotmail.com>2024-10-25 13:32:41 +0200
committerGitHub <noreply@github.com>2024-10-25 13:32:41 +0200
commit5a365dbc068f2a8cdfa9813c39cc84bb30e15637 (patch)
tree72716d562787b85e03cdc7fe1d30c827054d25a0 /opendc-web/opendc-web-runner/src/main/kotlin
parent27f5b7dcb05aefdab9b762175d538931face0aba (diff)
Rewrote the FlowEngine (#256)
* Removed unused components. Updated tests. Improved checkpointing model Improved model, started with SimPowerSource implemented FailureModels and Checkpointing First working version midway commit first update All simulation are now run with a single CPU and single MemoryUnit. multi CPUs are combined into one. This is for performance and explainability. * fixed merge conflicts * Updated M3SA paths. * Fixed small typo
Diffstat (limited to 'opendc-web/opendc-web-runner/src/main/kotlin')
-rw-r--r--opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/OpenDCRunner.kt27
-rw-r--r--opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/internal/WebComputeMonitor.kt12
2 files changed, 22 insertions, 17 deletions
diff --git a/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/OpenDCRunner.kt b/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/OpenDCRunner.kt
index af9d5529..2dd0c20f 100644
--- a/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/OpenDCRunner.kt
+++ b/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/OpenDCRunner.kt
@@ -25,22 +25,21 @@ package org.opendc.web.runner
import mu.KotlinLogging
import org.opendc.compute.failure.prefab.FailurePrefab
import org.opendc.compute.failure.prefab.createFailureModelPrefab
-import org.opendc.compute.service.ComputeService
-import org.opendc.compute.service.scheduler.createComputeScheduler
import org.opendc.compute.simulator.provisioner.Provisioner
import org.opendc.compute.simulator.provisioner.registerComputeMonitor
import org.opendc.compute.simulator.provisioner.setupComputeService
import org.opendc.compute.simulator.provisioner.setupHosts
+import org.opendc.compute.simulator.scheduler.createComputeScheduler
+import org.opendc.compute.simulator.service.ComputeService
import org.opendc.compute.topology.specs.HostSpec
import org.opendc.compute.workload.ComputeWorkloadLoader
import org.opendc.compute.workload.sampleByLoad
import org.opendc.compute.workload.trace
import org.opendc.experiments.base.runner.replay
-import org.opendc.simulator.compute.SimPsuFactories
-import org.opendc.simulator.compute.model.Cpu
-import org.opendc.simulator.compute.model.MachineModel
-import org.opendc.simulator.compute.model.MemoryUnit
-import org.opendc.simulator.compute.power.CpuPowerModels
+import org.opendc.simulator.compute.cpu.CpuPowerModels
+import org.opendc.simulator.compute.models.CpuModel
+import org.opendc.simulator.compute.models.MachineModel
+import org.opendc.simulator.compute.models.MemoryUnit
import org.opendc.simulator.kotlin.runSimulation
import org.opendc.web.proto.runner.Job
import org.opendc.web.proto.runner.Scenario
@@ -86,7 +85,7 @@ public class OpenDCRunner(
/**
* Helper class to load the workloads.
*/
- private val workloadLoader = ComputeWorkloadLoader(tracePath)
+ private val workloadLoader = ComputeWorkloadLoader(tracePath, 0L, 0L, 0.0)
/**
* The [ForkJoinPool] that is used to execute the simulation jobs.
@@ -295,7 +294,6 @@ public class OpenDCRunner(
"Scheduler " +
"Success=${serviceMetrics.attemptsSuccess} " +
"Failure=${serviceMetrics.attemptsFailure} " +
- "Error=${serviceMetrics.attemptsError} " +
"Pending=${serviceMetrics.tasksPending} " +
"Active=${serviceMetrics.tasksActive}"
}
@@ -325,7 +323,14 @@ public class OpenDCRunner(
val processors =
machine.cpus.map { cpu ->
- Cpu(0, cpu.numberOfCores, cpu.clockRateMhz, "Intel", "amd64", cpu.name)
+ CpuModel(
+ 0,
+ cpu.numberOfCores,
+ cpu.clockRateMhz.toFloat(),
+ "Intel",
+ "amd64",
+ cpu.name,
+ )
}
val memoryUnits =
@@ -347,7 +352,7 @@ public class OpenDCRunner(
"node-$clusterId-$position",
mapOf("cluster" to clusterId),
MachineModel(processors, memoryUnits[0]),
- SimPsuFactories.simple(powerModel),
+ powerModel,
)
res += spec
diff --git a/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/internal/WebComputeMonitor.kt b/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/internal/WebComputeMonitor.kt
index 96b42ac8..7e09e9e9 100644
--- a/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/internal/WebComputeMonitor.kt
+++ b/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/internal/WebComputeMonitor.kt
@@ -22,11 +22,11 @@
package org.opendc.web.runner.internal
-import org.opendc.compute.telemetry.ComputeMonitor
-import org.opendc.compute.telemetry.table.HostTableReader
-import org.opendc.compute.telemetry.table.ServiceData
-import org.opendc.compute.telemetry.table.ServiceTableReader
-import org.opendc.compute.telemetry.table.toServiceData
+import org.opendc.compute.simulator.telemetry.ComputeMonitor
+import org.opendc.compute.simulator.telemetry.table.HostTableReader
+import org.opendc.compute.simulator.telemetry.table.ServiceData
+import org.opendc.compute.simulator.telemetry.table.ServiceTableReader
+import org.opendc.compute.simulator.telemetry.table.toServiceData
import kotlin.math.roundToLong
/**
@@ -107,7 +107,7 @@ internal class WebComputeMonitor : ComputeMonitor {
serviceData.tasksTotal,
serviceData.tasksPending,
serviceData.tasksTotal - serviceData.tasksPending - serviceData.tasksActive,
- serviceData.attemptsError + serviceData.attemptsFailure,
+ serviceData.attemptsTerminated,
)
}