summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorDaniel Friesel <daniel.friesel@uos.de>2019-09-11 17:33:36 +0200
committerDaniel Friesel <daniel.friesel@uos.de>2019-09-11 17:33:52 +0200
commitaf15bd8bcdb70de5dbf49fb0e785cda6da7e0bfc (patch)
tree9e0470835a858fdf344ea06798854fd6e71d0a89 /bin
parentf3f0b1dc3c506672d4655c80948136460811dae4 (diff)
add simulation classes for online energy accounting inaccuracies
Diffstat (limited to 'bin')
-rwxr-xr-xbin/generate-dfa-benchmark.py27
1 files changed, 6 insertions, 21 deletions
diff --git a/bin/generate-dfa-benchmark.py b/bin/generate-dfa-benchmark.py
index 8489d40..e869a9d 100755
--- a/bin/generate-dfa-benchmark.py
+++ b/bin/generate-dfa-benchmark.py
@@ -30,6 +30,12 @@ Options:
--sleep=<ms> (default: 0)
How long to sleep between function calls.
+
+--trace-filter=<transition,transition,transition,...>[ <transition,transition,transition,...> ...]
+ Only consider traces whose beginning matches one of the provided transition sequences.
+ E.g. --trace-filter='init,foo init,bar' will only consider traces with init as first and foo or bar as second transition,
+ and --trace-filter='init,foo,$ init,bar,$' will only consider the traces init -> foo and init -> bar.
+
"""
import getopt
@@ -255,11 +261,6 @@ if __name__ == '__main__':
accounting_object = get_accountingmethod(opt['accounting'])(opt['dummy'], pta)
else:
accounting_object = None
- drv = MultipassDriver(opt['dummy'], pta, repo.class_by_name[opt['dummy']], enum=enum, accounting=accounting_object)
- with open('/home/derf/var/projects/multipass/src/driver/dummy.cc', 'w') as f:
- f.write(drv.impl)
- with open('/home/derf/var/projects/multipass/include/driver/dummy.h', 'w') as f:
- f.write(drv.header)
runs = list(pta.dfs(opt['depth'], with_arguments = True, with_parameters = True, trace_filter = opt['trace-filter']))
@@ -273,20 +274,4 @@ if __name__ == '__main__':
if next(filter(lambda x: len(x.return_value_handlers), pta.transitions), None):
need_return_values = True
- harness = OnboardTimerHarness(gpio_pin = timer_pin, pta = pta, counter_limits = runner.get_counter_limits_us(opt['arch']), log_return_values = need_return_values)
-
- if len(args) > 1:
- results = run_benchmark(args[1], pta, runs, opt['arch'], opt['app'], opt['run'].split(), harness, opt['sleep'], opt['repeat'], runs_total = len(runs), dummy = 'dummy' in opt)
- json_out = {
- 'opt' : opt,
- 'pta' : pta.to_json(),
- 'traces' : list(map(lambda x: x[1].traces, results)),
- 'raw_output' : list(map(lambda x: x[2], results)),
- }
- with open(time.strftime('ptalog-%Y%m%d-%H%M%S.json'), 'w') as f:
- json.dump(json_out, f)
- else:
- outbuf = benchmark_from_runs(pta, runs, harness)
- print(outbuf.getvalue())
-
sys.exit(0)