【发布时间】:2016-05-24 15:50:42
【问题描述】:
例如,我想知道是否可以在 5 或 6 核上细分 JAGS 中的 3 条链。这是我的代码:
library(parallel)
# There is no progression bar using parallel
jags.parallel(data = d$data,
inits = d$inits,
parameters.to.save = d$params,
model.file = model.jags,
n.chains = 3,
n.thin = 10,
n.iter = 9000,
n.burnin = 3000,
working.directory = NULL,
n.cluster = 3) ## the number of cluster it’s taking
如您所见,这是默认值,链数(nc 在我的情况下为 3)等于使用的核心数。
- 这对 MCMC 的采样方式有何影响?
- 在并行运行 MCMC 链时,是否有与 R 一起使用的最佳内核数?
- 我看到如果我有 3 条链,我就不能低于 3 核。它给了我这个error:
Error in res[[ch]] : subscript out of bounds。为什么? - 如果我增加核心数量,则需要更长的时间(作为比较,12 个核心比 3 个核心要多 7.2 个时间)!不应该反过来吗?
- 如何在不删除迭代、老化或添加细化(更多内核?更改 RAM?)的情况下加快脚本速度?
我的计算机有 16 个内核,因此我可以灵活选择内核数量(还有 64 GB 的 RAM 和 3 GHz Intel Xeon E5 处理器)。
【问题讨论】:
-
你不能将一条链拆分到多个核心,因为链的每次迭代都依赖于上一次迭代。
标签: r parallel-processing bayesian mcmc jags