Parallel mixing, burnin and the purpose of RedBlueMove?

44 views
Skip to first unread message

Crispin

unread,
Sep 22, 2021, 7:53:21 AM9/22/21
to emcee users
Hi

Despite having read Foreman-Mackey et al. (2013) I'm a little new to MCMC and still slightly confused about the purpose of RedBlueMove... I wonder if someone could advise me?

If I understand it correctly - the assumption is that in a parallel run, there will be more chains than CPUs available. Therefore when proposing a move for chain i at time t, we don't have access to the positions X_{j,t-1} of all the other chains j at time t-1. This is because some are still waiting for a CPU to become available to compute them, so the most recent position we have for them is X_{j,t-2}. And unfortunately (- waves hands vaguely -) that upsets the mixing properties of the chains.

RedBlueMove fixes this by splitting the chains into two groups and alternating between computing group 1 (in parallel) and group 2 (in parallel). Thus if we base move proposals on the other group, we always have access to X_{j,t-1} and (- waves hands vaguely -) the mixing is acceptable.

If the above is correct, I'm in a situation where the assumptions don't hold: having long burn in times I want to prioritize computing long chains over many chains. I thus have one CPU per chain, meaning RedBlueMove will waste 50% of the CPUs by only computing half the chains at once.

Will it work to simply compute all chains in a single group? My log likelihood functions all take similar time to compute so that way little CPU time is lost waiting for the results of all X_{j,t-1} before proposing moves for t.

Or does this somehow upset the mixing process?

Thank you

Crispin

Dan Foreman-Mackey

unread,
Sep 22, 2021, 8:20:42 AM9/22/21
to Crispin, emcee users
It's not "mixing" that's the issue. Your sampler won't satisfy detailed balance if you try to update all the walkers in parallel. I recommend using at least 2 x #cpu walkers and if you don't want to do that then you're out of luck! 

--
You received this message because you are subscribed to the Google Groups "emcee users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to emcee-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/emcee-users/eecf6375-9e49-436f-9d61-fc24b063f1c9n%40googlegroups.com.
--
Dan Foreman-Mackey
Associate Research Scientist
Flatiron Institute
Reply all
Reply to author
Forward
0 new messages