diff options
Diffstat (limited to 'opendc-compute/opendc-compute-workload/src')
| -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 |
