diff options
| author | Dante Niewenhuis <d.niewenhuis@hotmail.com> | 2025-03-14 15:33:42 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-14 15:33:42 +0100 |
| commit | 7dc2639a7fcdf51ef789f4af2e3afff11438be6e (patch) | |
| tree | 9a67f432f1aa31e57b20471b6cca61e01ccdea70 /opendc-compute/opendc-compute-workload/src/main/kotlin | |
| parent | 5ec41d49b497010783d25bf13bc042d3e76824e3 (diff) | |
Added more battery policies (#312)
* some updates
* Updates
* Added comments and renamed variables
* Ran Spotless
Diffstat (limited to 'opendc-compute/opendc-compute-workload/src/main/kotlin')
| -rw-r--r-- | opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/WorkloadLoader.kt | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/WorkloadLoader.kt b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/WorkloadLoader.kt index 0b551a3c..ecb98ba2 100644 --- a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/WorkloadLoader.kt +++ b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/WorkloadLoader.kt @@ -54,9 +54,9 @@ public abstract class WorkloadLoader(private val submissionTime: String? = null) reScheduleTasks(workload) - if (fraction >= 1.0) { - return workload - } +// if (fraction >= 1.0) { +// return workload +// } if (fraction <= 0.0) { throw Error("The fraction of tasks to load cannot be 0.0 or lower") @@ -65,21 +65,29 @@ public abstract class WorkloadLoader(private val submissionTime: String? = null) val res = mutableListOf<Task>() val totalLoad = workload.sumOf { it.totalLoad } + val desiredLoad = totalLoad * fraction var currentLoad = 0.0 - val shuffledWorkload = workload.shuffled() - for (entry in shuffledWorkload) { - val entryLoad = entry.totalLoad - - // TODO: ask Sacheen - if ((currentLoad + entryLoad) / totalLoad > fraction) { - break - } - - currentLoad += entryLoad + while (currentLoad < desiredLoad) { + val entry = workload.random() res += entry + + currentLoad += entry.totalLoad } +// val shuffledWorkload = workload.shuffled() +// for (entry in shuffledWorkload) { +// val entryLoad = entry.totalLoad +// +// // TODO: ask Sacheen +// if ((currentLoad + entryLoad) / totalLoad > fraction) { +// break +// } +// +// currentLoad += entryLoad +// res += entry +// } + logger.info { "Sampled ${workload.size} VMs (fraction $fraction) into subset of ${res.size} VMs" } return res |
