MCMC 或 HMC 中的加速特征值问题

时间:2021-05-16 21:19:41

标签: python tensorflow2.0 bayesian eigenvalue emcee

简要背景:我正在使用贝叶斯推理方法,如 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 的数量)。

我的问题:回答以下任何或所有问题都会有很大帮助。

  • 我该如何解决这个问题?
  • 有没有办法在 GPU 上完成此操作以加快计算速度?
  • 有没有人使用 MCMC 或 HMC 来解决使用多个步行者并且需要解决特征值问题的问题?

我对特征值问题运行时的测试可以在 GitHub 存储库中找到,用于对不同的特征值问题求解器进行基准测试,可在以下链接中访问:https://github.com/srijaniiserprinceton/test_eigprob

Flowchart describing the Bayesian inference workflow

0 个答案:

没有答案
相关问题