[pypy-commit] benchmarks default: some tuning :-/
Raemi
noreply at buildbot.pypy.org
Tue Jul 22 15:01:13 CEST 2014
Author: Remi Meier <remi.meier at inf.ethz.ch>
Branch:
Changeset: r270:34385976da5c
Date: 2014-07-22 14:01 +0200
http://bitbucket.org/pypy/benchmarks/changeset/34385976da5c/
Log: some tuning :-/
diff --git a/multithread/quick_sort/quick_sort.py b/multithread/quick_sort/quick_sort.py
--- a/multithread/quick_sort/quick_sort.py
+++ b/multithread/quick_sort/quick_sort.py
@@ -64,21 +64,33 @@
r -= 1
fs = []
- #right_amount = 1000 > n // 2 > 505
+ # only start futures on a single level:
do_futures = level == 4
largs = (xs, l0, r - l0 + 1, level+1)
rargs = (xs, l, l0 + n - l, level+1)
+ leftf, rightf = False, False
+
if do_futures:
- fs.append(Future(qsort_f, *largs))
- fs.append(Future(qsort_f, *rargs))
- else:
- if level > 4 and n < 100:
+ if largs[2] > 2000:
+ fs.append(Future(qsort_f, *largs))
+ leftf = True
+
+ if rargs[2] > 2000:
+ fs.append(Future(qsort_f, *rargs))
+ rightf = True
+
+ if not leftf:
+ if level >= 4 and largs[2] < 500:
with atomic:
fs.extend(qsort_f(*largs))
+ else:
+ fs.extend(qsort_f(*largs))
+
+ if not rightf:
+ if level >= 4 and rargs[2] < 500:
with atomic:
fs.extend(qsort_f(*rargs))
else:
- fs.extend(qsort_f(*largs))
fs.extend(qsort_f(*rargs))
#print_abort_info(0.0000001)
@@ -104,7 +116,6 @@
random.shuffle(to_sort)
s = deque(to_sort)
# qsort(s, 0, len(s))
- hint_commit_soon()
t -= time.time()
# start as future, otherwise we get more threads
More information about the pypy-commit
mailing list