使用concurrent.futures
优化多处理的最佳基于python的multinest包是什么?
我在让多播使用除multiprocessing.pool
以外的所有CPU时遇到了问题;但是python的multinest操作似乎无法使用它。
在dynesty
(两种最常见的纯python MultiNest之一(的github问题部分,我们讨论了这也是
https://github.com/joshspeagle/dynesty/issues/100
没有一个非常确定的最终解释,但人们认为
(1( 成本函数不足以同时需要所有核心(2( 引导标志应设置为0以避免引导;这是一个为速度而实施的技巧,似乎在起干扰作用。
我用过雀巢(github.com/kbarbary/Nestle(和Dynesty(github.com/sjohspeagle/Dynesty(;无论成本函数多么复杂,他们似乎都有这个问题。
我在使用PyMultiNest(github.com/JohannesBuchner/PyMultiNest(方面取得了巨大成功;但它需要fortran版本的MultiNest(github.com/JohannesBuchner/MultiNest(,这很难正确安装,需要手动安装OpenMPI。MultiNest和OpenMPI都可能存在编译器问题,这取决于操作系统、系统及其配置。
我建议使用PyMultiNest,除非它很难安装;使用Dynesty和Nestle是微不足道的;但他们在完全并行化方面遇到了这个问题。