From b1c1eee9e53b98f083c0d5a9a8495e76211077e1 Mon Sep 17 00:00:00 2001 From: Jean-Matthieu Etancelin <jean-matthieu.etancelin@imag.fr> Date: Tue, 19 Feb 2013 09:15:41 +0000 Subject: [PATCH] --- HySoP/hysop/tools/kernel_benchmark.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/HySoP/hysop/tools/kernel_benchmark.py b/HySoP/hysop/tools/kernel_benchmark.py index 47f7a73bd..a87735bd4 100644 --- a/HySoP/hysop/tools/kernel_benchmark.py +++ b/HySoP/hysop/tools/kernel_benchmark.py @@ -194,6 +194,8 @@ class BenchmarkSuite: f.write(k + " ") f.write(v + " ") f.write(c + " ") + Nx = s[0] + f.write(str(eval(c)) + ' ') try: f.write(str(self.timings[k][v][c][s]) + "\n") except: @@ -202,6 +204,21 @@ class BenchmarkSuite: f.close() +def find_min(filename, kernel=None, version=None, config=None, size=None): + d = pickle.load(open(filename, 'r')) + cc = {} + kl = d.keys() if kernel is None else [kernel] if isinstance(kernel, str) else kernel + for k in kl: + vl = d[k].keys() if version is None else [version] if isinstance(version, str) else version + for v in vl: + cl = d[k][v].keys() if config is None else [config] if isinstance(config, str) else config + for c in cl: + sl = d[k][v][c].keys() if size is None else [size] if isinstance(size, tuple) else size + for s in sl: + cc[k + '_' + v + '_' + c] = d[k][v][c][s] + print cc[min(cc, key=cc.get)], min(cc, key=cc.get) + + class Benchmark: """Benchmark management""" -- GitLab