问题描述
简要背景:我正在使用贝叶斯推理方法,如 MCMC 或 HMC。到目前为止,我一直在使用 emcee
包来使用 MCMC 推断模型参数。我使用 emcee
的主要原因是因为它允许 MPI 并行化对后验分布进行采样的步行者。因此,每个步行者都在一个单独的核心上运行。可以在链接中找到使用 emcee
的线性回归的简单示例:https://emcee.readthedocs.io/en/stable/tutorials/line/
问题:对于我的具体问题,我需要解决一个特征值问题并将特征值与每个 MCMC 步骤的数据进行比较。我们必须找到其特征值的矩阵 M 是一个平均大小 (2500 x 2500) 的复杂 hermitian 矩阵。每个在单独核心上工作的步行者都必须解决这个特征值问题。我可以使用 numpy.linalg.eigh() 或 spicy.linalg.eigh() 或 scipy.sparse.linalg.eigsh() 作为特征值求解器,并且我知道它们每个都在不通过 MPI 实现运行时使用所有可用内核。但是,由于我正在并行化 walker,因此每个 walker 都被限制为一个内核,因此特征值求解器不会使用所有其他内核(即使我提供的内核数多于 walker 的数量)。
我的问题:回答以下任何或所有问题都会有很大帮助。
我对特征值问题运行时的测试可以在 GitHub 存储库中找到,用于对不同的特征值问题求解器进行基准测试,可在以下链接中访问:https://github.com/srijaniiserprinceton/test_eigprob
Flowchart describing the Bayesian inference workflow
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)