summaryrefslogtreecommitdiff
path: root/opendc/opendc-format/src/main
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2020-03-11 20:02:27 +0100
committerFabian Mastenbroek <mail.fabianm@gmail.com>2020-03-11 20:02:27 +0100
commit7665c089ac44166f284d5757087ea1e7b3bc0a2d (patch)
tree7c1bbb69ea19014d3bf3848ce143cfdbd2289ca2 /opendc/opendc-format/src/main
parent0655127dcd945289f045d8e04304e6a050e2a2f9 (diff)
parentd1d9e059cb83c1d8cf01e704136d0af2b6564e5b (diff)
Merge branch '2.x-sc20-setup' into '2.x'
Pass all relevant SC20 parameters as arguments See merge request opendc/opendc-simulator!39
Diffstat (limited to 'opendc/opendc-format/src/main')
-rw-r--r--opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/sc20/Sc20TraceReader.kt24
1 files changed, 17 insertions, 7 deletions
diff --git a/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/sc20/Sc20TraceReader.kt b/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/sc20/Sc20TraceReader.kt
index d4656823..498f147f 100644
--- a/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/sc20/Sc20TraceReader.kt
+++ b/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/trace/sc20/Sc20TraceReader.kt
@@ -45,7 +45,8 @@ import java.util.UUID
*/
class Sc20TraceReader(
traceDirectory: File,
- performanceInterferenceModel: PerformanceInterferenceModel
+ performanceInterferenceModel: PerformanceInterferenceModel,
+ selectedVms: List<String>
) : TraceReader<VmWorkload> {
/**
* The internal iterator to use for this reader.
@@ -56,7 +57,7 @@ class Sc20TraceReader(
* Initialize the reader.
*/
init {
- val entries = mutableMapOf<String, TraceEntry<VmWorkload>>()
+ val entries = mutableMapOf<UUID, TraceEntry<VmWorkload>>()
val timestampCol = 0
val cpuUsageCol = 1
@@ -65,9 +66,18 @@ class Sc20TraceReader(
val provisionedMemoryCol = 20
val traceInterval = 5 * 60 * 1000L
- traceDirectory.walk()
- .filterNot { it.isDirectory }
- .filter { it.extension == "csv" || it.extension == "txt" }
+ val vms = if (selectedVms.isEmpty()) {
+ traceDirectory.walk()
+ .filterNot { it.isDirectory }
+ .filter { it.extension == "csv" || it.extension == "txt" }
+ .toList()
+ } else {
+ selectedVms.map {
+ File(traceDirectory, it)
+ }
+ }
+
+ vms
.forEach { vmFile ->
println(vmFile)
val flopsHistory = mutableListOf<FlopsHistoryFragment>()
@@ -112,7 +122,7 @@ class Sc20TraceReader(
}
}
- val uuid = UUID(0L, vmId.hashCode().toLong())
+ val uuid = UUID.randomUUID()
val relevantPerformanceInterferenceModelItems = PerformanceInterferenceModel(
performanceInterferenceModel.items.filter { it.workloadIds.contains(uuid) }.toSet()
@@ -129,7 +139,7 @@ class Sc20TraceReader(
requiredMemory
)
)
- entries[vmId] = TraceEntryImpl(
+ entries[uuid] = TraceEntryImpl(
flopsHistory.firstOrNull()?.tick ?: -1,
vmWorkload
)