From 6e019b83c2f82552704feb4d8ce18e0d3a19d75a Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Mon, 23 Sep 2019 13:42:05 +0200 Subject: use ArchiveArtifacts for all benchmark resources --- src/benchmarks/dj_trace.py | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) (limited to 'src/benchmarks/dj_trace.py') diff --git a/src/benchmarks/dj_trace.py b/src/benchmarks/dj_trace.py index f475223..5cb1b99 100644 --- a/src/benchmarks/dj_trace.py +++ b/src/benchmarks/dj_trace.py @@ -25,8 +25,9 @@ from urllib.request import urlretrieve import matplotlib.pyplot as plt import numpy as np +from src.artifact import ArchiveArtifact from src.benchmark import Benchmark -from src.util import print_status, download_reporthook +from src.util import print_status COMMA_SEP_NUMBER_RE = "(?:\\d*(?:,\\d*)?)*" @@ -57,7 +58,7 @@ class BenchmarkDJTrace(Benchmark): def __init__(self): name = "dj_trace" - self.cmd = "trace_run{binary_suffix} dj_workloads/{workload}.wl" + self.cmd = "trace_run{binary_suffix} {build_dir}/dj_workloads/{workload}.wl" self.measure_cmd = "" self.args = {"workload": ["389-ds-2", @@ -106,29 +107,11 @@ class BenchmarkDJTrace(Benchmark): def prepare(self): super().prepare() - workload_dir = "dj_workloads" - workload_archive = f"{workload_dir}.tar.xz" - - if not os.path.isdir(workload_dir): - if not os.path.isfile(workload_archive): - choice = input("Download missing workloads (367M / ~6GB unpacked) [Y/n] ") - if not choice in ['', 'Y', 'y']: - return - - url = f"https://www4.cs.fau.de/~flow/allocbench/{workload_archive}" - urlretrieve(url, workload_archive, download_reporthook) - sys.stderr.write("\n") - - # Extract workloads - proc = subprocess.run(["tar", "xf", workload_archive], stdout=subprocess.PIPE, - stderr=subprocess.PIPE, universal_newlines=True) - - # delete archive - if proc.returncode == 0: - os.remove(workload_archive) - - for workload in os.listdir(workload_dir): - self.args["workload"].append(os.path.splitext(workload)[0]) + workloads = ArchiveArtifact("dj_workloads", + "https://www4.cs.fau.de/~flow/allocbench/dj_workloads.tar.xz", + "tar", + "c9bc499eeba8023bca28a755fffbaf9200a335ad") + workloads.provide(self.build_dir) @staticmethod def process_output(result, stdout, stderr, allocator, perm): -- cgit v1.2.3