From 8dfefc152f16f9fd9e8aa0910fd4d23d6543d87e Mon Sep 17 00:00:00 2001 From: Joshua Bakita Date: Fri, 29 May 2020 12:44:28 -0400 Subject: Add DIS benchmarks and scripts as they were used for Joshua's PRP Note that Neighborhood has been modified to use less space --- dis/original/summarize.py | 71 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100755 dis/original/summarize.py (limited to 'dis/original/summarize.py') diff --git a/dis/original/summarize.py b/dis/original/summarize.py new file mode 100755 index 0000000..f8f6929 --- /dev/null +++ b/dis/original/summarize.py @@ -0,0 +1,71 @@ +#!/usr/bin/python3 +import sys + +f = sys.argv[1] +res = {} +mem_res = {} +memw_res = {} +samples = {} +max_res = {} + +with open(f) as fp: + for line in fp: + s = line.split() + if s[0] not in res: +# print(s[0]) + res[s[0]] = list([int(s[5])])#)int(s[5]) + mem_res[s[0]] = int(s[8]) + memw_res[s[0]] = int(s[9]) + samples[s[0]] = int(s[4]) + max_res[s[0]] = int(s[5]) + else: + res[s[0]].append(int(s[5])) + mem_res[s[0]] += int(s[8]) + memw_res[s[0]] += int(s[9]) + max_res[s[0]] = max(int(s[5]), max_res[s[0]]) +## {{{ http://code.activestate.com/recipes/511478/ (r1) +import math +import functools + +def percentile(N, percent, key=lambda x:x): + """ + Find the percentile of a list of values. + + @parameter N - is a list of values. Note N MUST BE already sorted. + @parameter percent - a float value from 0.0 to 1.0. + @parameter key - optional key function to compute value from each element of N. + + @return - the percentile of the values + """ + if not N: + return None + k = (len(N)-1) * percent + f = math.floor(k) + c = math.ceil(k) + if f == c: + return key(N[int(k)]) + d0 = key(N[int(f)]) * (c-k) + d1 = key(N[int(c)]) * (k-f) + return d0+d1 +## end of http://code.activestate.com/recipes/511478/ }}} +""" +print("Average times:") +for r in res.keys(): + print(res[r]/samples[r]) + +print("Average memory read:") +for r in mem_res.keys(): + print(mem_res[r]/samples[r]) + +print("Average memory write:") +for r in memw_res.keys(): + print(memw_res[r]/samples[r]) + +print("Max times:") +for r in max_res.keys(): + print(max_res[r]) +""" +print("Name\t\tAverage\t\tMax\t\t99th %\t\tAvg Mem Read\tAvg Mem Write\t") +for r in res.keys(): +# print(r + "\t\t" + str(res[r]/samples[r]) + "\t\t" + str(max_res[r])) + print("{:12}\t{:>12.0f}\t{:>12.0f}\t{:>12.0f}\t{:>12.0f}\t{:>12.0f}".format(r, sum(res[r])/len(res[r]), max(res[r]), percentile(sorted(res[r]), 0.99), mem_res[r]/samples[r], memw_res[r]/samples[r])) -- cgit v1.2.2