from __future__ import division, print_function
import emcee
import numpy as np
from IPython.parallel import Client
def lnprob(x):
return -0.5 * np.sum(x ** 2)
c = Client()
view = c[:]
view.push({"lnprob": lnprob})
view.execute("import numpy as np")
ndim = 10
nwalkers = 100
p0 = [np.random.rand(ndim) for i in xrange(nwalkers)]
sampler = emcee.EnsembleSampler(nwalkers, ndim, lnprob, pool=view)
pos, prob, state = sampler.run_mcmc(p0, 100)
sampler.reset()
sampler.run_mcmc(pos, 1000, rstate0=state)
print("Mean acceptance fraction: ", np.mean(sampler.acceptance_fraction))