aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/loop.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/loop.py b/src/loop.py
new file mode 100644
index 0000000..9590710
--- /dev/null
+++ b/src/loop.py
@@ -0,0 +1,48 @@
+import multiprocessing
+
+from src.benchmark import Benchmark
+
+class Benchmark_Loop( Benchmark ):
+ def __init__(self):
+ self.name = "loop"
+ self.descrition = """This benchmark makes n allocations in t concurrent threads.
+ How allocations are freed can be changed with the benchmark
+ version""",
+
+ self.cmd = "build/bench_loop{binary_suffix} {nthreads} 1000000 {maxsize}"
+
+ self.args = {
+ "maxsize" : [2 ** x for x in range(6, 16)],
+ "nthreads" : range(1, multiprocessing.cpu_count() * 2 + 1)
+ }
+
+ self.requirements = ["build/bench_loop"]
+ super().__init__()
+
+ def summary(self, sumdir):
+ # Speed
+ self.plot_fixed_arg("perm.nthreads / (float({task-clock})/1000)",
+ ylabel = '"MOPS/cpu-second"',
+ title = '"Loop: " + arg + " " + str(arg_value)',
+ filepostfix="time",
+ sumdir=sumdir)
+
+ # Memusage
+ self.plot_fixed_arg("int({VmHWM})",
+ ylabel='"VmHWM in kB"',
+ title= '"Loop Memusage: " + arg + " " + str(arg_value)',
+ filepostfix="memusage",
+ sumdir=sumdir)
+
+ self.plot_fixed_arg("({L1-dcache-load-misses}/{L1-dcache-loads})*100",
+ ylabel='"L1 misses in %"',
+ title= '"Loop l1 cache misses: " + arg + " " + str(arg_value)',
+ filepostfix="l1misses",
+ sumdir=sumdir)
+
+ # Speed Matrix
+ self.write_best_doublearg_tex_table("perm.nthreads / (float({task-clock})/1000)",
+ filepostfix="memusage.matrix",
+ sumdir=sumdir)
+
+loop = Benchmark_Loop()