def main(args=None): path = os.path.abspath(__file__).rsplit('/', 1)[0] defaults = parse_config(path + '/default.cfg') opt = parse_config('model.cfg', defaults) print '### Read parameters from model.cfg ###' print 'model parameters', P['names'] print 'minimum allowed values', P['min'] print 'maximum allowed values', P['max'] Npar = len(P['names']) print opt.Nthreads, 'threads' print opt.Nwalkers, 'walkers' sampler = emcee.EnsembleSampler(opt.Nwalkers, Npar, ln_likelihood, threads=opt.Nthreads) if opt.Nburn > 0: t1 = time.time() p0 = get_initial_positions(opt.Nwalkers) run_burn_in(sampler, opt, p0) print '%.2g min elapsed' % ((time.time() - t1) / 60.) if opt.Nmcmc > 0: t1 = time.time() run_mcmc(sampler, opt) print '%.2g min elapsed' % ((time.time() - t1) / 60.) return sampler
def main(args=None): path = os.path.abspath(__file__).rsplit('/', 1)[0] defaults = parse_config(path + '/default.cfg') opt = parse_config('model.cfg', defaults) print '### Read parameters from model.cfg ###' print 'model parameters', P['names'] print 'minimum allowed values', P['min'] print 'maximum allowed values', P['max'] Npar = len(P['names']) print opt.Nthreads, 'threads' print opt.Nwalkers, 'walkers' sampler = emcee.EnsembleSampler( opt.Nwalkers, Npar, ln_likelihood, threads=opt.Nthreads) if opt.Nburn > 0: t1 = time.time() p0 = get_initial_positions(opt.Nwalkers) run_burn_in(sampler, opt, p0) print '%.2g min elapsed' % ((time.time() - t1)/60.) if opt.Nmcmc > 0: t1 = time.time() run_mcmc(sampler, opt) print '%.2g min elapsed' % ((time.time() - t1)/60.) return sampler
# if you get an error when running emcee in parallel, you often get an # unhelpful error messgae, making debugging very difficult. To check # everything is working before you start running emcee, use thsi test # file. from model import \ ln_likelihood, P, x, ydata, ysigma, get_initial_positions, plot_model p0 = get_initial_positions(1) plot_model(p0)