From cd4ed5023553fd90dfc82b847fc2193aaabbe9ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Radek=20Hu=C5=A1ek?= <PitelVonSacek@gmail.com>
Date: Thu, 10 Dec 2015 16:28:07 +0100
Subject: [PATCH] parmap: add queue_size option

Exposes another parameter for fine tuning parmap.
---
 groupConnectivity.pyx | 4 ++--
 parmap.py             | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/groupConnectivity.pyx b/groupConnectivity.pyx
index bb11b0d..068d1da 100644
--- a/groupConnectivity.pyx
+++ b/groupConnectivity.pyx
@@ -139,7 +139,7 @@ def subdivisionIterator(G, edges = None):
 
 def generateSubdivisions(file, G, edges = None,
                          function = lambda H: H.graph6_string(),
-                         parallel = 0, chunksize = 1):
+                         parallel = 0, chunksize = 1, q_size = 3):
   f = open(file, 'w+')
   f.write("# Subdivisions of edges '%s' of graph '%s' (%s)\n" %
           (edges, G.graph6_string(), G))
@@ -148,7 +148,7 @@ def generateSubdivisions(file, G, edges = None,
     iterator = map(function, subdivisionIterator(G, edges))
   else:
     iterator = parmap(function, subdivisionIterator(G, edges),
-                      nprocs = parallel, chunksize = chunksize)
+                      nprocs = parallel, chunksize = chunksize, queue_size = q_size)
 
   for line in iterator:
     f.write(line)
diff --git a/parmap.py b/parmap.py
index dcb8521..cdb0f89 100644
--- a/parmap.py
+++ b/parmap.py
@@ -32,11 +32,11 @@ def worker_fun(f, q_in, q_out):
             break
         q_out.put((i, [ f(x) for x in chunk ]))
 
-def parmap(f, X, nprocs = None, chunksize = 1):
+def parmap(f, X, nprocs = None, chunksize = 1, queue_size = 3):
     if nprocs is None:
       nprocs = multiprocessing.cpu_count()
 
-    q_in   = multiprocessing.Queue(100)
+    q_in   = multiprocessing.Queue(queue_size)
     q_out  = multiprocessing.Queue()
 
     proc = [ multiprocessing.Process(
-- 
GitLab