V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ljiaming19
V2EX  ›  程序员

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

  •  
  •   ljiaming19 · 291 天前 · 2264 次点击
    这是一个创建于 291 天前的主题,其中的信息可能已经有所发展或是发生改变。
    从原理本身来说,蒙特卡洛模拟是通过对每次结果的统计筛选来得到最终结果 结果的误差取决于 cycle 的数量 从这个方法本身来说,是不是很难用并行计算?目前大多数做蒙特卡洛模拟的软件貌似都是只能单核串行的
    11 条回复    2021-04-07 10:21:07 +08:00
    xuegy
        1
    xuegy  
       291 天前
    这玩意难道不是最容易并行的吗?
    所有核一起跑,最后把结果汇总加起来,连 mpi 都不需要。
    xupefei
        2
    xupefei  
       291 天前 via iPhone
    难并行的是马克罗夫链蒙特卡洛
    dayeye2006199
        3
    dayeye2006199  
       291 天前
    LZ 是不是把 monte carlo 模拟和离散事件模拟记反了。后面那个并行比较困难,前面那个处开 MCMC,是最适合并行的算法了。
    IgniteWhite
        4
    IgniteWhite  
       291 天前
    @xupefei 马尔可夫链?
    zxCoder
        5
    zxCoder  
       291 天前
    蒙特卡洛模拟不是随机吗
    BrettD
        6
    BrettD  
       291 天前 via iPhone
    不同采样之间不是可以独立并行运行吗?为什么难以并行化?
    green15
        7
    green15  
       291 天前 via iPhone
    可能我理解有误,感觉这描述像是拉斯维加斯算法
    noqwerty
        8
    noqwerty  
       291 天前   ❤️ 1
    @BrettD #6 Monte Carlo 本身是很容易并行的,感觉楼主意思是说 MCMC 稍有难度,因为 MCMC 的并行是靠不同的初始化同时跑很多条链,如果 burn-in 比较长的话并行的意义就不大。MC3 其实在实际应用里把这个问题解决很多了。
    ipwx
        9
    ipwx  
       291 天前
    @noqwerty 不同初始化跑很多链不也很简单。反正是很多独立的链。。。
    noqwerty
        10
    noqwerty  
       291 天前
    @ipwx #9 多条链是最简单的并行方法,但是 burnin 问题比较严重的话跑很多条独立的链意义也不大啊,每条收敛的都很慢
    leimao
        11
    leimao  
       291 天前 via iPhone
    Monte Carlo 算法的设计有很多种。MCMC 这种的不好并行。
    https://leimao.github.io/blog/Gibbs-Sampling/
    但我之前也做过可以并行的 Monte Carlo 。还是得看具体算法设计,具体问题具体分析。Monte Carlo 的本质还是随机采样而已,怎么采样就看你的设计了。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2516 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 08:37 · PVG 16:37 · LAX 00:37 · JFK 03:37
    ♥ Do have faith in what you're doing.