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 很简单;但是他们在完全并行化方面遇到了这个问题。