From e05aba274accc6006ffb2fb3fccc1d4399b4c4a0 Mon Sep 17 00:00:00 2001 From: Georgios Andreadis Date: Sat, 23 May 2020 10:30:04 +0200 Subject: Pick frame out of Solvinity trace --- .../experiments/sc20/experiment/Portfolios.kt | 12 +++++------ .../experiments/sc20/trace/Sc20TraceConverter.kt | 25 +++++++++++++++------- 2 files changed, 23 insertions(+), 14 deletions(-) (limited to 'opendc') diff --git a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/experiment/Portfolios.kt b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/experiment/Portfolios.kt index 0865887b..4d8e2f1d 100644 --- a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/experiment/Portfolios.kt +++ b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/experiment/Portfolios.kt @@ -84,7 +84,7 @@ public class MoreVelocityPortfolio(parent: Experiment, id: Int) : Portfolio(pare } public class CompositeWorkloadPortfolio(parent: Experiment, id: Int) : Portfolio(parent, id, "composite-workload") { - private val totalSampleLoad = 3063174751459.0 + private val totalSampleLoad = 1.3301733005049648E12 override val topologies = listOf( Topology("base"), @@ -96,27 +96,27 @@ public class CompositeWorkloadPortfolio(parent: Experiment, id: Int) : Portfolio override val workloads = listOf( CompositeWorkload( "all-azure", - listOf(Workload("solvinity", 0.0), Workload("azure", 1.0)), + listOf(Workload("solvinity-short", 0.0), Workload("azure", 1.0)), totalSampleLoad ), CompositeWorkload( "solvinity-25-azure-75", - listOf(Workload("solvinity", 0.25), Workload("azure", 0.75)), + listOf(Workload("solvinity-short", 0.25), Workload("azure", 0.75)), totalSampleLoad ), CompositeWorkload( "solvinity-50-azure-50", - listOf(Workload("solvinity", 0.5), Workload("azure", 0.5)), + listOf(Workload("solvinity-short", 0.5), Workload("azure", 0.5)), totalSampleLoad ), CompositeWorkload( "solvinity-75-azure-25", - listOf(Workload("solvinity", 0.75), Workload("azure", 0.25)), + listOf(Workload("solvinity-short", 0.75), Workload("azure", 0.25)), totalSampleLoad ), CompositeWorkload( "all-solvinity", - listOf(Workload("solvinity", 1.0), Workload("azure", 0.0)), + listOf(Workload("solvinity-short", 1.0), Workload("azure", 0.0)), totalSampleLoad ) ) diff --git a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/trace/Sc20TraceConverter.kt b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/trace/Sc20TraceConverter.kt index 652551c6..0877ad52 100644 --- a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/trace/Sc20TraceConverter.kt +++ b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/trace/Sc20TraceConverter.kt @@ -192,6 +192,9 @@ fun readSolvinityTrace( val allFragments = mutableListOf() + val begin = 15 * 24 * 60 * 60 * 1000L + val end = 45 * 24 * 60 * 60 * 1000L + traceDirectory.walk() .filterNot { it.isDirectory } .filter { it.extension == "csv" || it.extension == "txt" } @@ -229,6 +232,10 @@ fun readSolvinityTrace( } val timestamp = (values[timestampCol].trim().toLong() - 5 * 60) * 1000L - minTimestamp + if (begin > timestamp || timestamp > end) { + continue + } + cores = values[coreCol].trim().toInt() requiredMemory = max(requiredMemory, values[provisionedMemoryCol].trim().toLong()) maxCores = max(maxCores, cores) @@ -274,18 +281,20 @@ fun readSolvinityTrace( } var maxTime = Long.MIN_VALUE - flopsFragments.forEach { fragment -> + flopsFragments.filter { it.tick in begin until end }.forEach { fragment -> allFragments.add(fragment) maxTime = max(maxTime, fragment.tick) } - val metaRecord = GenericData.Record(metaSchema) - metaRecord.put("id", vmId) - metaRecord.put("submissionTime", minTime) - metaRecord.put("endTime", maxTime) - metaRecord.put("maxCores", maxCores) - metaRecord.put("requiredMemory", requiredMemory) - metaWriter.write(metaRecord) + if (minTime in begin until end) { + val metaRecord = GenericData.Record(metaSchema) + metaRecord.put("id", vmId) + metaRecord.put("submissionTime", minTime) + metaRecord.put("endTime", maxTime) + metaRecord.put("maxCores", maxCores) + metaRecord.put("requiredMemory", requiredMemory) + metaWriter.write(metaRecord) + } } return allFragments -- cgit v1.2.3