concurrent.futures 多嵌套
concurrent.futures with multinest
什么是最好的基于 python 的多嵌套包,它针对 concurrent.futures
的多重处理进行了优化?
我在获取多播时遇到了问题,无法将我的所有 CPU 用于除 multiprocessing.pool
以外的任何东西;但是 python 多嵌套操作似乎无法使用它。
在 dynesty
的 github 问题部分(两个最常见的纯 python MultiNest 之一),我们也讨论了这一点
https://github.com/joshspeagle/dynesty/issues/100
没有一个非常确定的最终解释,但我的想法是
(1) 成本函数不够大,无法同时要求所有核
(2) 应将bootstrap标志设置为0,避免bootstrapping;这是为速度而实施的技巧,但似乎有干扰。
我用过雀巢 (github.com/kbarbary/nestle) 和 Dynesty (github.com/joshspeagle/dynesty);无论成本函数的复杂性如何,他们似乎都有这个问题。
我使用 PyMultiNest 取得了巨大的成功 (github.com/JohannesBuchner/PyMultiNest);但它需要 Fortran 版本的 MultiNest (github.com/JohannesBuchner/MultiNest),非常 很难正确安装——需要手动安装 OpenMPI。 MultiNest 和 OpenMPI 都可能存在编译器问题,具体取决于 OS、系统及其配置。
我建议使用 PyMultiNest,只是它很难安装;使用 Dynesty 和 Nestle 很简单;但是他们在完全并行化方面遇到了这个问题。
什么是最好的基于 python 的多嵌套包,它针对 concurrent.futures
的多重处理进行了优化?
我在获取多播时遇到了问题,无法将我的所有 CPU 用于除 multiprocessing.pool
以外的任何东西;但是 python 多嵌套操作似乎无法使用它。
在 dynesty
的 github 问题部分(两个最常见的纯 python MultiNest 之一),我们也讨论了这一点
https://github.com/joshspeagle/dynesty/issues/100
没有一个非常确定的最终解释,但我的想法是
(1) 成本函数不够大,无法同时要求所有核 (2) 应将bootstrap标志设置为0,避免bootstrapping;这是为速度而实施的技巧,但似乎有干扰。
我用过雀巢 (github.com/kbarbary/nestle) 和 Dynesty (github.com/joshspeagle/dynesty);无论成本函数的复杂性如何,他们似乎都有这个问题。
我使用 PyMultiNest 取得了巨大的成功 (github.com/JohannesBuchner/PyMultiNest);但它需要 Fortran 版本的 MultiNest (github.com/JohannesBuchner/MultiNest),非常 很难正确安装——需要手动安装 OpenMPI。 MultiNest 和 OpenMPI 都可能存在编译器问题,具体取决于 OS、系统及其配置。
我建议使用 PyMultiNest,只是它很难安装;使用 Dynesty 和 Nestle 很简单;但是他们在完全并行化方面遇到了这个问题。