summaryrefslogtreecommitdiff
path: root/opendc-experiments/opendc-experiments-base/src/main
diff options
context:
space:
mode:
authorNiels Thiele <noleu66@posteo.net>2025-07-15 11:29:47 +0200
committerGitHub <noreply@github.com>2025-07-15 11:29:47 +0200
commitb2dc97dc84f56174ede9f273999ade2ed059d431 (patch)
tree1b5d6d775890375f46b533c7aa78e492a88afc3f /opendc-experiments/opendc-experiments-base/src/main
parent0203254b709614fa732c114aa25916f61b8b3275 (diff)
multi gpu support (#351)
Diffstat (limited to 'opendc-experiments/opendc-experiments-base/src/main')
-rw-r--r--opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt17
1 files changed, 15 insertions, 2 deletions
diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt
index f7c444ea..e14a06cc 100644
--- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt
+++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt
@@ -30,7 +30,9 @@ import org.opendc.compute.simulator.provisioner.setupComputeService
import org.opendc.compute.simulator.provisioner.setupHosts
import org.opendc.compute.simulator.scheduler.ComputeScheduler
import org.opendc.compute.simulator.service.ComputeService
+import org.opendc.compute.simulator.telemetry.parquet.ComputeExportConfig
import org.opendc.compute.simulator.telemetry.parquet.ParquetComputeMonitor
+import org.opendc.compute.simulator.telemetry.parquet.withGpuColumns
import org.opendc.compute.topology.clusterTopology
import org.opendc.experiments.base.experiment.Scenario
import org.opendc.experiments.base.experiment.specs.allocation.TimeShiftAllocationPolicySpec
@@ -125,7 +127,17 @@ public fun runScenario(
setupHosts(serviceDomain, topology, startTimeLong),
)
- addExportModel(provisioner, serviceDomain, scenario, seed, startTime, scenario.id)
+ val gpuCount = topology.flatMap { it.hostSpecs }.maxOfOrNull { it.model.gpuModels.size } ?: 0
+ addExportModel(
+ provisioner,
+ serviceDomain,
+ scenario,
+ seed,
+ startTime,
+ scenario.id,
+ computeExportConfig =
+ scenario.exportModelSpec.computeExportConfig.withGpuColumns(gpuCount),
+ )
val service = provisioner.registry.resolve(serviceDomain, ComputeService::class.java)!!
service.setTasksExpected(workload.size)
@@ -180,6 +192,7 @@ public fun addExportModel(
seed: Long,
startTime: Duration,
index: Int,
+ computeExportConfig: ComputeExportConfig = scenario.exportModelSpec.computeExportConfig,
) {
provisioner.runStep(
registerComputeMonitor(
@@ -189,7 +202,7 @@ public fun addExportModel(
"seed=$seed",
bufferSize = 4096,
scenario.exportModelSpec.filesToExportDict,
- computeExportConfig = scenario.exportModelSpec.computeExportConfig,
+ computeExportConfig = computeExportConfig,
),
Duration.ofSeconds(scenario.exportModelSpec.exportInterval),
startTime,