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