diff --git a/HySoP/hysop/tools/kernel_benchmark.py b/HySoP/hysop/tools/kernel_benchmark.py index 47f7a73bdf0bec5edf95525f7c0fd3a30a37a996..a87735bd4156be57a3a617387256d93790a4175d 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"""