Skip to content

Commit 0ea44a4

Browse files
davidbrochartaloctavodia
authored andcommitted
Parallelize call to likelihood_logp (#3561)
1 parent 21eb865 commit 0ea44a4

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

pymc3/step_methods/smc.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,15 @@ def sample_smc(
196196

197197
while beta < 1:
198198

199-
likelihoods = np.array([likelihood_logp(sample) for sample in posterior]).squeeze()
199+
if step.parallel and cores > 1:
200+
pool = mp.Pool(processes=cores)
201+
results = pool.starmap(
202+
likelihood_logp,
203+
[(sample,) for sample in posterior],
204+
)
205+
else:
206+
results = [likelihood_logp(sample) for sample in posterior]
207+
likelihoods = np.array(results).squeeze()
200208
beta, old_beta, weights, sj = calc_beta(beta, likelihoods, step.threshold)
201209
model.marginal_likelihood *= sj
202210
# resample based on plausibility weights (selection)

0 commit comments

Comments
 (0)