蒙特卡洛模拟是不是很难做并行计算

2021-04-07 03:13:16 +08:00
 ljiaming19
从原理本身来说,蒙特卡洛模拟是通过对每次结果的统计筛选来得到最终结果 结果的误差取决于 cycle 的数量 从这个方法本身来说,是不是很难用并行计算?目前大多数做蒙特卡洛模拟的软件貌似都是只能单核串行的
3194 次点击
所在节点    程序员
11 条回复
xuegy
2021-04-07 04:36:42 +08:00
这玩意难道不是最容易并行的吗?
所有核一起跑,最后把结果汇总加起来,连 mpi 都不需要。
xupefei
2021-04-07 04:53:04 +08:00
难并行的是马克罗夫链蒙特卡洛
dayeye2006199
2021-04-07 05:28:31 +08:00
LZ 是不是把 monte carlo 模拟和离散事件模拟记反了。后面那个并行比较困难,前面那个处开 MCMC,是最适合并行的算法了。
IgniteWhite
2021-04-07 05:47:27 +08:00
@xupefei 马尔可夫链?
zxCoder
2021-04-07 08:03:41 +08:00
蒙特卡洛模拟不是随机吗
BrettD
2021-04-07 08:28:34 +08:00
不同采样之间不是可以独立并行运行吗?为什么难以并行化?
green15
2021-04-07 08:32:43 +08:00
可能我理解有误,感觉这描述像是拉斯维加斯算法
noqwerty
2021-04-07 09:32:54 +08:00
@BrettD #6 Monte Carlo 本身是很容易并行的,感觉楼主意思是说 MCMC 稍有难度,因为 MCMC 的并行是靠不同的初始化同时跑很多条链,如果 burn-in 比较长的话并行的意义就不大。MC3 其实在实际应用里把这个问题解决很多了。
ipwx
2021-04-07 10:02:43 +08:00
@noqwerty 不同初始化跑很多链不也很简单。反正是很多独立的链。。。
noqwerty
2021-04-07 10:11:16 +08:00
@ipwx #9 多条链是最简单的并行方法,但是 burnin 问题比较严重的话跑很多条独立的链意义也不大啊,每条收敛的都很慢
leimao
2021-04-07 10:21:07 +08:00
Monte Carlo 算法的设计有很多种。MCMC 这种的不好并行。
https://leimao.github.io/blog/Gibbs-Sampling/
但我之前也做过可以并行的 Monte Carlo 。还是得看具体算法设计,具体问题具体分析。Monte Carlo 的本质还是随机采样而已,怎么采样就看你的设计了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/768540

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX