From 4db15cec73fbd53636b637987bf004a2b374f5a9 Mon Sep 17 00:00:00 2001
From: Farid Mohammadi <farid.mohammadi@iws.uni-stuttgart.de>
Date: Fri, 27 May 2022 08:55:04 +0200
Subject: [PATCH] [surrogate][sequential] change parallel utility evaluation to
 series with map.

---
 .../surrogate_models/sequential_design.py     | 39 +++++++++++++------
 1 file changed, 28 insertions(+), 11 deletions(-)

diff --git a/src/bayesvalidrox/surrogate_models/sequential_design.py b/src/bayesvalidrox/surrogate_models/sequential_design.py
index ff19bbcc7..7f65b672c 100644
--- a/src/bayesvalidrox/surrogate_models/sequential_design.py
+++ b/src/bayesvalidrox/surrogate_models/sequential_design.py
@@ -1373,10 +1373,19 @@ class SeqDesign():
                     candidates, n_cand_groups, axis=0
                     )
 
-                results = Parallel(n_jobs=-1, backend='threading')(
-                        delayed(self.run_util_func)(
-                            exploit_method, split_cand[i], i, sigma2, var, X_MC)
-                        for i in range(n_cand_groups))
+                # results = Parallel(n_jobs=-1, backend='threading')(
+                #         delayed(self.run_util_func)(
+                #             exploit_method, split_cand[i], i, sigma2, var, X_MC)
+                #         for i in range(n_cand_groups))
+                out = map(self.run_util_func,
+                          [exploit_method]*n_cand_groups,
+                          split_cand,
+                          range(n_cand_groups),
+                          [sigma2] * n_cand_groups,
+                          [var] * n_cand_groups,
+                          [X_MC] * n_cand_groups
+                          )
+                results = list(out)
 
                 # Retrieve the results and append them
                 U_J_d = np.concatenate([results[NofE][1] for NofE in
@@ -1494,13 +1503,21 @@ class SeqDesign():
                     args.append((exploit_method, split_cand[index], index,
                                  sigma2, var))
 
-                # Multiprocessing
-                pool = multiprocessing.Pool(multiprocessing.cpu_count())
-                # With Pool.starmap_async()
-                results = pool.starmap_async(self.run_util_func, args).get()
-
-                # Close the pool
-                pool.close()
+                # # Multiprocessing
+                # pool = multiprocessing.Pool(multiprocessing.cpu_count())
+                # # With Pool.starmap_async()
+                # results = pool.starmap_async(self.run_util_func, args).get()
+
+                # # Close the pool
+                # pool.close()
+                out = map(self.run_util_func,
+                          [exploit_method]*len(goodSampleIdx),
+                          split_cand,
+                          range(len(goodSampleIdx)),
+                          [sigma2] * len(goodSampleIdx),
+                          [var] * len(goodSampleIdx)
+                          )
+                results = list(out)
 
                 # Retrieve the results and append them
                 if explore_method == 'Voronoi':
-- 
GitLab