【发布时间】:2015-09-15 21:01:58
【问题描述】:
我在执行 MCMC(蒙特卡洛马尔可夫链)时遇到了问题。所以对于 MCMC,假设我将运行 10000 次迭代,然后在每次迭代中,我将绘制一些参数。但是在每次迭代中,我都有一些独立的数据,所以我可以做 parfor。然而,问题是,随着 MCMC 的进行,完成一次迭代的时间似乎会迅速增长。很快,这非常耗时。 我的问题是:有没有任何有效的方法来结合 parfor 和 while 循环?
我有以下伪代码:
r=1;
while r<10000
parfor i=1:I
make draws from proposal distribution
calculate acceptance rate
accept or reject current draw
end
r=r+1;
end
【问题讨论】:
-
这个伪代码没有意义,因为您只需将
while替换为for超过 10000 个条目。此外,除非您的迭代在循环非常大,parfor实际上会减慢您的代码速度,请参阅this answer