[pypy-svn] r70682 - in pypy/benchmarks: . shootout
fijal at codespeak.net
fijal at codespeak.net
Mon Jan 18 14:21:44 CET 2010
Author: fijal
Date: Mon Jan 18 14:21:43 2010
New Revision: 70682
Modified:
pypy/benchmarks/benchmarks.py
pypy/benchmarks/shootout/fannkuch.py
pypy/benchmarks/shootout/spectral-norm.py
Log:
Add two more benchmarks. Two more (fasta and binary-trees) needs a bit of
thinking
Modified: pypy/benchmarks/benchmarks.py
==============================================================================
--- pypy/benchmarks/benchmarks.py (original)
+++ pypy/benchmarks/benchmarks.py Mon Jan 18 14:21:43 2010
@@ -17,5 +17,6 @@
d[BM.func_name] = BM
-for name in ['float', 'nbody_modified', 'meteor-contest']:
+for name in ['float', 'nbody_modified', 'meteor-contest', 'fannkuch',
+ 'spectral-norm']:
_register_new_bm(name, globals())
Modified: pypy/benchmarks/shootout/fannkuch.py
==============================================================================
--- pypy/benchmarks/shootout/fannkuch.py (original)
+++ pypy/benchmarks/shootout/fannkuch.py Mon Jan 18 14:21:43 2010
@@ -5,6 +5,10 @@
# contributed by Sokolov Yura
# modified by Tupteq
+import optparse
+import time
+import util
+
def fannkuch(n):
count = range(1, n+1)
max_flips = 0
@@ -18,7 +22,7 @@
while 1:
if check < 30:
- print "".join(str(i+1) for i in perm1)
+ #print "".join(str(i+1) for i in perm1)
check += 1
while r != 1:
@@ -46,10 +50,22 @@
else:
return max_flips
+DEFAULT_ARG = 9
+
def main(n):
- print "Pfannkuchen(%d) = %d\n" % (n, fannkuch(n)),
+ times = []
+ for i in range(n):
+ t0 = time.time()
+ fannkuch(DEFAULT_ARG)
+ tk = time.time()
+ times.append(tk - t0)
+ return times
+
+if __name__ == "__main__":
+ parser = optparse.OptionParser(
+ usage="%prog [options]",
+ description="Test the performance of the Float benchmark")
+ util.add_standard_options_to(parser)
+ options, args = parser.parse_args()
-if __name__=="__main__":
- import sys
- for i in range(int(sys.argv[2])):
- main(int(sys.argv[1]))
+ util.run_benchmark(options, options.num_runs, main)
Modified: pypy/benchmarks/shootout/spectral-norm.py
==============================================================================
--- pypy/benchmarks/shootout/spectral-norm.py (original)
+++ pypy/benchmarks/shootout/spectral-norm.py Mon Jan 18 14:21:43 2010
@@ -9,7 +9,10 @@
from math import sqrt
from itertools import izip
-from sys import argv
+import time
+import util
+import itertools
+import optparse
def eval_A (i, j):
return 1.0 / ((i + j) * (i + j + 1) / 2 + i + 1)
@@ -37,22 +40,32 @@
partial_sum += eval_A (j, i) * u_j
return partial_sum
-def main():
- n = int(argv[1])
- u = [1] * n
+DEFAULT_N = 130
- for dummy in xrange (10):
- v = eval_AtA_times_u (u)
- u = eval_AtA_times_u (v)
+def main(n):
+ times = []
+ for i in range(n):
+ t0 = time.time()
+ u = [1] * DEFAULT_N
+
+ for dummy in xrange (10):
+ v = eval_AtA_times_u (u)
+ u = eval_AtA_times_u (v)
+
+ vBv = vv = 0
+
+ for ue, ve in izip (u, v):
+ vBv += ue * ve
+ vv += ve * ve
+ tk = time.time()
+ times.append(tk - t0)
+ return times
+
+if __name__ == "__main__":
+ parser = optparse.OptionParser(
+ usage="%prog [options]",
+ description="Test the performance of the Float benchmark")
+ util.add_standard_options_to(parser)
+ options, args = parser.parse_args()
- vBv = vv = 0
-
- for ue, ve in izip (u, v):
- vBv += ue * ve
- vv += ve * ve
-
- print "%0.9f" % (sqrt(vBv/vv))
-
-if __name__ == '__main__':
- for i in range(int(argv[2])):
- main()
+ util.run_benchmark(options, options.num_runs, main)
More information about the Pypy-commit
mailing list