[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