aboutsummaryrefslogtreecommitdiff
path: root/src/benchmarks/loop.py
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fl.fischer@fau.de>2019-03-25 17:49:39 +0100
committerFlorian Fischer <florian.fl.fischer@fau.de>2019-03-25 17:49:39 +0100
commit25c4d81069f576354d0279bf38417c236e924540 (patch)
treee5b953bc96220f07c86bf01ac0f900751b08543e /src/benchmarks/loop.py
parent5c4ee34ec788ab0a59fe10c125452323d4b67d98 (diff)
downloadallocbench-25c4d81069f576354d0279bf38417c236e924540.tar.gz
allocbench-25c4d81069f576354d0279bf38417c236e924540.zip
move benchmark definitions into src/benchmarks
bench now loads all *.py files from src/benchmarks as benchmarks
Diffstat (limited to 'src/benchmarks/loop.py')
-rw-r--r--src/benchmarks/loop.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/benchmarks/loop.py b/src/benchmarks/loop.py
new file mode 100644
index 0000000..4683549
--- /dev/null
+++ b/src/benchmarks/loop.py
@@ -0,0 +1,36 @@
+from src.benchmark import Benchmark
+
+
+class Benchmark_Loop(Benchmark):
+ def __init__(self):
+ self.name = "loop"
+ self.descrition = """This benchmark allocates and frees n blocks in t concurrent
+ threads."""
+
+ self.cmd = "loop{binary_suffix} {nthreads} 1000000 {maxsize}"
+
+ self.args = {"maxsize": [2 ** x for x in range(6, 16)],
+ "nthreads": Benchmark.scale_threads_for_cpus(2)}
+
+ self.requirements = ["loop"]
+ super().__init__()
+
+ def summary(self):
+ # Speed
+ self.plot_fixed_arg("perm.nthreads / ({task-clock}/1000)",
+ ylabel='"MOPS/cpu-second"',
+ title='"Loop: " + arg + " " + str(arg_value)',
+ filepostfix="time")
+
+ # L1 cache misses
+ 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")
+
+ # Speed Matrix
+ self.write_best_doublearg_tex_table("perm.nthreads / ({task-clock}/1000)",
+ filepostfix="memusage.matrix")
+
+
+loop = Benchmark_Loop()