From 172cb47bfd701da17fcff3bcaf7e1bd0a8fe83b5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lo=C3=AFc=20Le=20Guyader?= <loic.le.guyader@xfel.eu>
Date: Mon, 6 Apr 2020 16:43:09 +0200
Subject: [PATCH] Use joblib for DSSC multiprocessing

---
 DSSC.py | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/DSSC.py b/DSSC.py
index 0adf64b..5aebd93 100644
--- a/DSSC.py
+++ b/DSSC.py
@@ -1,4 +1,4 @@
-import multiprocessing
+from joblib import Parallel, delayed, parallel_backend
 from time import strftime
 import tempfile
 import shutil
@@ -330,8 +330,10 @@ class DSSC:
         timestamp = strftime('%X')
         print(f'start time: {timestamp}')
 
-        with multiprocessing.Pool(self.Nworker) as pool:
-            module_data = pool.map(process_one_module, jobs)
+        with parallel_backend('loky', n_jobs=self.Nworker):
+            module_data = Parallel(verbose=20)(
+                delayed(process_one_module)(job) for job in tqdm(jobs)
+            )
 
         print('finished:', strftime('%X'))
     
-- 
GitLab