summaryrefslogtreecommitdiff
path: root/ot/utils.py
diff options
context:
space:
mode:
authorRémi Flamary <remi.flamary@gmail.com>2019-07-05 13:47:43 +0200
committerRémi Flamary <remi.flamary@gmail.com>2019-07-05 13:47:43 +0200
commit7ac1b462d23ae0a396742bba4773e146e60e7502 (patch)
tree82b36ba5f9511c133322e1687120ff8e4c315d8f /ot/utils.py
parent0bc936f62430c98ecbb0f39c9508f29c6054a327 (diff)
cleanup parmap on windows
Diffstat (limited to 'ot/utils.py')
-rw-r--r--ot/utils.py31
1 files changed, 18 insertions, 13 deletions
diff --git a/ot/utils.py b/ot/utils.py
index e8249ef..5707d9b 100644
--- a/ot/utils.py
+++ b/ot/utils.py
@@ -214,23 +214,28 @@ def fun(f, q_in, q_out):
def parmap(f, X, nprocs=multiprocessing.cpu_count()):
- """ paralell map for multiprocessing """
- q_in = multiprocessing.Queue(1)
- q_out = multiprocessing.Queue()
+ """ paralell map for multiprocessing (only map on windows)"""
- proc = [multiprocessing.Process(target=fun, args=(f, q_in, q_out))
- for _ in range(nprocs)]
- for p in proc:
- p.daemon = True
- p.start()
+ if not sys.platform.endswith('win32'):
- sent = [q_in.put((i, x)) for i, x in enumerate(X)]
- [q_in.put((None, None)) for _ in range(nprocs)]
- res = [q_out.get() for _ in range(len(sent))]
+ q_in = multiprocessing.Queue(1)
+ q_out = multiprocessing.Queue()
- [p.join() for p in proc]
+ proc = [multiprocessing.Process(target=fun, args=(f, q_in, q_out))
+ for _ in range(nprocs)]
+ for p in proc:
+ p.daemon = True
+ p.start()
- return [x for i, x in sorted(res)]
+ sent = [q_in.put((i, x)) for i, x in enumerate(X)]
+ [q_in.put((None, None)) for _ in range(nprocs)]
+ res = [q_out.get() for _ in range(len(sent))]
+
+ [p.join() for p in proc]
+
+ return [x for i, x in sorted(res)]
+ else:
+ return list(map(f, X))
def check_params(**kwargs):