summaryrefslogtreecommitdiff
path: root/opendc-compute/opendc-compute-simulator
diff options
context:
space:
mode:
authorDante Niewenhuis <d.niewenhuis@hotmail.com>2025-05-16 10:32:08 +0200
committerGitHub <noreply@github.com>2025-05-16 10:32:08 +0200
commitd70312f122d9ef7c31b05757239ffc66af832dee (patch)
treec8eb5d86ce751b783c3f15744bcda35861eed65d /opendc-compute/opendc-compute-simulator
parent1bc17abd7691bc81f11ee125e2eeb4cb08da5245 (diff)
Updated website documentation (#334)
* Updated website documentation * Updated some documentation and fixed links * small updates * small updates
Diffstat (limited to 'opendc-compute/opendc-compute-simulator')
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java17
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ComputeSchedulers.kt9
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/MemorizingScheduler.kt6
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/ComputeExportConfig.kt2
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltBatteryExportColumns.kt10
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltHostExportColumns.kt32
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltPowerSourceExportColumns.kt10
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltServiceExportColumns.kt25
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt18
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/host/HostTableReader.kt2
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/host/HostTableReaderImpl.kt12
11 files changed, 64 insertions, 79 deletions
diff --git a/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java
index 6d973b3f..11394ce9 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java
+++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java
@@ -418,7 +418,8 @@ public final class ComputeService implements AutoCloseable, CarbonReceiver {
LOGGER.debug("Enqueueing task {} to be assigned to host", task.getUid());
if (task.getNumFailures() >= maxNumFailures) {
- LOGGER.warn("task {} has been terminated because it failed {} times", task, task.getNumFailures());
+ LOGGER.warn("task {} has been terminated because it failed {} times", (Object) task, (Object)
+ task.getNumFailures());
tasksTerminated++;
task.setState(TaskState.TERMINATED);
@@ -493,20 +494,6 @@ public final class ComputeService implements AutoCloseable, CarbonReceiver {
final ServiceFlavor flavor = task.getFlavor();
- // if (task.getNumFailures() >= maxNumFailures) {
- // LOGGER.warn("task {} has been terminated because it failed {} times", task,
- // task.getNumFailures());
- //
- // taskQueue.remove(req);
- // tasksPending--;
- // tasksTerminated++;
- // task.setState(TaskState.TERMINATED);
- //
- // scheduler.removeTask(task, hv);
- // this.setTaskToBeRemoved(task);
- // continue;
- // }
-
if (result.getResultType() == SchedulingResultType.FAILURE) {
LOGGER.trace("Task {} selected for scheduling but no capacity available for it at the moment", task);
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ComputeSchedulers.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ComputeSchedulers.kt
index 35c66e44..e70cec58 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ComputeSchedulers.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ComputeSchedulers.kt
@@ -48,7 +48,6 @@ public enum class ComputeSchedulerEnum {
Random,
TaskNumMemorizing,
Timeshift,
- TimeshiftNoPeak,
}
public fun createPrefabComputeScheduler(
@@ -129,13 +128,5 @@ public fun createPrefabComputeScheduler(
clock = clock,
random = SplittableRandom(seeder.nextLong()),
)
- ComputeSchedulerEnum.TimeshiftNoPeak ->
- TimeshiftScheduler(
- filters = listOf(ComputeFilter(), VCpuFilter(cpuAllocationRatio), RamFilter(ramAllocationRatio)),
- weighers = listOf(RamWeigher(multiplier = 1.0)),
- windowSize = 168,
- clock = clock,
- random = SplittableRandom(seeder.nextLong()),
- )
}
}
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/MemorizingScheduler.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/MemorizingScheduler.kt
index 4108ed3d..72d9199f 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/MemorizingScheduler.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/MemorizingScheduler.kt
@@ -35,7 +35,7 @@ public class MemorizingScheduler(
private val filters: List<HostFilter>,
private val maxTimesSkipped: Int = 7,
) : ComputeScheduler {
- // We assume that there will be max 200 tasks per host.
+ // We assume that there will be max 100 tasks per host.
// The index of a host list is the number of tasks on that host.
private val hostsQueue = List(100, { mutableListOf<HostView>() })
private var minAvailableHost = 0
@@ -78,6 +78,10 @@ public class MemorizingScheduler(
return SchedulingResult(SchedulingResultType.FAILURE)
}
+// if (minAvailableHost == 1) {
+// return SchedulingResult(SchedulingResultType.EMPTY);
+// }
+
val maxIters = 10000
var numIters = 0
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/ComputeExportConfig.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/ComputeExportConfig.kt
index 7c753ebf..c7549433 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/ComputeExportConfig.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/ComputeExportConfig.kt
@@ -106,7 +106,7 @@ public data class ComputeExportConfig(
/**
* Config that includes all columns defined in [DfltHostExportColumns], [DfltTaskExportColumns],
- * [DfltPowerSourceExportColumns], [batteryExportColumns], [DfltServiceExportColumns] among all other loaded
+ * [DfltPowerSourceExportColumns], [DfltBatteryExportColumns], [DfltServiceExportColumns] among all other loaded
* columns for [HostTableReader], [TaskTableReader] and [ServiceTableReader].
*/
public val ALL_COLUMNS: ComputeExportConfig by lazy {
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltBatteryExportColumns.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltBatteryExportColumns.kt
index 594d518c..29e0f899 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltBatteryExportColumns.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltBatteryExportColumns.kt
@@ -57,12 +57,12 @@ public object DfltBatteryExportColumns {
field = Types.required(INT64).named("timestamp_absolute"),
) { it.timestampAbsolute.toEpochMilli() }
- public val NAME: ExportColumn<BatteryTableReader> =
+ public val BATTERY_NAME: ExportColumn<BatteryTableReader> =
ExportColumn(
field =
Types.required(BINARY)
.`as`(LogicalTypeAnnotation.stringType())
- .named("name"),
+ .named("battery_name"),
) { Binary.fromString(it.batteryInfo.name) }
public val CLUSTER_NAME: ExportColumn<BatteryTableReader> =
@@ -111,9 +111,9 @@ public object DfltBatteryExportColumns {
*/
internal val BASE_EXPORT_COLUMNS =
setOf(
- TIMESTAMP_ABS,
- TIMESTAMP,
- NAME,
+ BATTERY_NAME,
CLUSTER_NAME,
+ TIMESTAMP,
+ TIMESTAMP_ABS,
)
}
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltHostExportColumns.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltHostExportColumns.kt
index a691bc45..00f7854d 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltHostExportColumns.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltHostExportColumns.kt
@@ -58,12 +58,12 @@ public object DfltHostExportColumns {
field = Types.required(INT64).named("timestamp_absolute"),
) { it.timestampAbsolute.toEpochMilli() }
- public val NAME: ExportColumn<HostTableReader> =
+ public val HOST_NAME: ExportColumn<HostTableReader> =
ExportColumn(
field =
Types.required(BINARY)
.`as`(LogicalTypeAnnotation.stringType())
- .named("name"),
+ .named("host_name"),
) { Binary.fromString(it.hostInfo.name) }
public val CLUSTER_NAME: ExportColumn<HostTableReader> =
@@ -84,30 +84,30 @@ public object DfltHostExportColumns {
field = Types.required(INT64).named("mem_capacity"),
) { it.hostInfo.memCapacity }
- public val GUESTS_TERMINATED: ExportColumn<HostTableReader> =
+ public val TASKS_TERMINATED: ExportColumn<HostTableReader> =
ExportColumn(
- field = Types.required(INT32).named("guests_terminated"),
+ field = Types.required(INT32).named("tasks_terminated"),
) { it.tasksTerminated }
- public val GUESTS_RUNNING: ExportColumn<HostTableReader> =
+ public val TASKS_RUNNING: ExportColumn<HostTableReader> =
ExportColumn(
- field = Types.required(INT32).named("guests_running"),
+ field = Types.required(INT32).named("tasks_running"),
) { it.tasksActive }
- public val GUESTS_ERROR: ExportColumn<HostTableReader> =
+ public val TASKS_ERROR: ExportColumn<HostTableReader> =
ExportColumn(
- field = Types.required(INT32).named("guests_error"),
+ field = Types.required(INT32).named("tasks_error"),
) { it.guestsError }
- public val GUESTS_INVALID: ExportColumn<HostTableReader> =
+ public val TASKS_INVALID: ExportColumn<HostTableReader> =
ExportColumn(
- field = Types.required(INT32).named("guests_invalid"),
+ field = Types.required(INT32).named("tasks_invalid"),
) { it.guestsInvalid }
- public val CPU_LIMIT: ExportColumn<HostTableReader> =
+ public val CPU_CAPACITY: ExportColumn<HostTableReader> =
ExportColumn(
- field = Types.required(FLOAT).named("cpu_limit"),
- ) { it.cpuLimit }
+ field = Types.required(FLOAT).named("cpu_capacity"),
+ ) { it.cpuCapacity }
public val CPU_USAGE: ExportColumn<HostTableReader> =
ExportColumn(
@@ -179,9 +179,9 @@ public object DfltHostExportColumns {
*/
internal val BASE_EXPORT_COLUMNS =
setOf(
- TIMESTAMP_ABS,
- TIMESTAMP,
- NAME,
+ HOST_NAME,
CLUSTER_NAME,
+ TIMESTAMP,
+ TIMESTAMP_ABS,
)
}
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltPowerSourceExportColumns.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltPowerSourceExportColumns.kt
index 192667b9..e221a41a 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltPowerSourceExportColumns.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltPowerSourceExportColumns.kt
@@ -57,12 +57,12 @@ public object DfltPowerSourceExportColumns {
field = Types.required(INT64).named("timestamp_absolute"),
) { it.timestampAbsolute.toEpochMilli() }
- public val NAME: ExportColumn<PowerSourceTableReader> =
+ public val SOURCE_NAME: ExportColumn<PowerSourceTableReader> =
ExportColumn(
field =
Types.required(BINARY)
.`as`(LogicalTypeAnnotation.stringType())
- .named("name"),
+ .named("source_name"),
) { Binary.fromString(it.powerSourceInfo.name) }
public val CLUSTER_NAME: ExportColumn<PowerSourceTableReader> =
@@ -98,9 +98,9 @@ public object DfltPowerSourceExportColumns {
*/
internal val BASE_EXPORT_COLUMNS =
setOf(
- TIMESTAMP_ABS,
- TIMESTAMP,
- NAME,
+ SOURCE_NAME,
CLUSTER_NAME,
+ TIMESTAMP,
+ TIMESTAMP_ABS,
)
}
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltServiceExportColumns.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltServiceExportColumns.kt
index 374b2d31..5f3dccf4 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltServiceExportColumns.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltServiceExportColumns.kt
@@ -59,16 +59,21 @@ public object DfltServiceExportColumns {
field = Types.required(INT32).named("hosts_up"),
) { it.hostsUp }
- public val TASKS_PENDING: ExportColumn<ServiceTableReader> =
+ public val HOSTS_DOWN: ExportColumn<ServiceTableReader> =
ExportColumn(
- field = Types.required(INT32).named("tasks_pending"),
- ) { it.tasksPending }
+ field = Types.required(INT32).named("hosts_down"),
+ ) { it.hostsDown }
public val TASKS_TOTAL: ExportColumn<ServiceTableReader> =
ExportColumn(
field = Types.required(INT32).named("tasks_total"),
) { it.tasksTotal }
+ public val TASKS_PENDING: ExportColumn<ServiceTableReader> =
+ ExportColumn(
+ field = Types.required(INT32).named("tasks_pending"),
+ ) { it.tasksPending }
+
public val TASKS_ACTIVE: ExportColumn<ServiceTableReader> =
ExportColumn(
field = Types.required(INT32).named("tasks_active"),
@@ -79,27 +84,17 @@ public object DfltServiceExportColumns {
field = Types.required(INT32).named("tasks_completed"),
) { it.tasksCompleted }
- public val TASKS_FAILED: ExportColumn<ServiceTableReader> =
+ public val TASKS_TERMINATED: ExportColumn<ServiceTableReader> =
ExportColumn(
field = Types.required(INT32).named("tasks_terminated"),
) { it.tasksTerminated }
- public val ATTEMPTS_SUCCESS: ExportColumn<ServiceTableReader> =
- ExportColumn(
- field = Types.required(INT32).named("attempts_success"),
- ) { it.attemptsSuccess }
-
- public val ATTEMPTS_FAILURE: ExportColumn<ServiceTableReader> =
- ExportColumn(
- field = Types.required(INT32).named("attempts_failure"),
- ) { it.attemptsFailure }
-
/**
* The columns that are always included in the output file.
*/
internal val BASE_EXPORT_COLUMNS =
setOf(
- TIMESTAMP_ABS,
TIMESTAMP,
+ TIMESTAMP_ABS,
)
}
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt
index 6f6b5bdd..5c3ef3bf 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt
@@ -74,16 +74,24 @@ public object DfltTaskExportColumns {
.named("task_name"),
) { Binary.fromString(it.taskInfo.name) }
- public val CPU_COUNT: ExportColumn<TaskTableReader> =
+ public val HOST_NAME: ExportColumn<TaskTableReader> =
ExportColumn(
- field = Types.required(INT32).named("cpu_count"),
- ) { it.taskInfo.cpuCount }
+ field =
+ Types.required(BINARY)
+ .`as`(LogicalTypeAnnotation.stringType())
+ .named("host_name"),
+ ) { Binary.fromString(it.host?.name) }
public val MEM_CAPACITY: ExportColumn<TaskTableReader> =
ExportColumn(
field = Types.required(INT64).named("mem_capacity"),
) { it.taskInfo.memCapacity }
+ public val CPU_COUNT: ExportColumn<TaskTableReader> =
+ ExportColumn(
+ field = Types.required(INT32).named("cpu_count"),
+ ) { it.taskInfo.cpuCount }
+
public val CPU_LIMIT: ExportColumn<TaskTableReader> =
ExportColumn(
field = Types.required(FLOAT).named("cpu_limit"),
@@ -167,9 +175,9 @@ public object DfltTaskExportColumns {
*/
internal val BASE_EXPORT_COLUMNS =
setOf(
- TIMESTAMP_ABS,
- TIMESTAMP,
TASK_ID,
TASK_NAME,
+ TIMESTAMP,
+ TIMESTAMP_ABS,
)
}
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/host/HostTableReader.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/host/HostTableReader.kt
index 5cbdcd28..ff0115df 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/host/HostTableReader.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/host/HostTableReader.kt
@@ -75,7 +75,7 @@ public interface HostTableReader : Exportable {
/**
* The capacity of the CPUs in the host (in MHz).
*/
- public val cpuLimit: Double
+ public val cpuCapacity: Double
/**
* The usage of all CPUs in the host (in MHz).
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/host/HostTableReaderImpl.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/host/HostTableReaderImpl.kt
index 913e0a17..6e1dac48 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/host/HostTableReaderImpl.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/host/HostTableReaderImpl.kt
@@ -49,7 +49,7 @@ public class HostTableReaderImpl(
_tasksActive = table.tasksActive
_guestsError = table.guestsError
_guestsInvalid = table.guestsInvalid
- _cpuLimit = table.cpuLimit
+ _cpuCapacity = table.cpuCapacity
_cpuDemand = table.cpuDemand
_cpuUsage = table.cpuUsage
_cpuUtilization = table.cpuUtilization
@@ -99,9 +99,9 @@ public class HostTableReaderImpl(
get() = _guestsInvalid
private var _guestsInvalid = 0
- override val cpuLimit: Double
- get() = _cpuLimit
- private var _cpuLimit = 0.0
+ override val cpuCapacity: Double
+ get() = _cpuCapacity
+ private var _cpuCapacity = 0.0
override val cpuUsage: Double
get() = _cpuUsage
@@ -176,7 +176,7 @@ public class HostTableReaderImpl(
_tasksActive = hostSysStats.guestsRunning
_guestsError = hostSysStats.guestsError
_guestsInvalid = hostSysStats.guestsInvalid
- _cpuLimit = hostCpuStats.capacity
+ _cpuCapacity = hostCpuStats.capacity
_cpuDemand = hostCpuStats.demand
_cpuUsage = hostCpuStats.usage
_cpuUtilization = hostCpuStats.utilization
@@ -211,7 +211,7 @@ public class HostTableReaderImpl(
_guestsError = 0
_guestsInvalid = 0
- _cpuLimit = 0.0
+ _cpuCapacity = 0.0
_cpuUsage = 0.0
_cpuDemand = 0.0
_cpuUtilization = 0.0