Cuda 基于MPI协议的多个gpu上Poisson方程的求解

Cuda 基于MPI协议的多个gpu上Poisson方程的求解,cuda,mpi,gpu,thrust,petsc,Cuda,Mpi,Gpu,Thrust,Petsc,我试图在多GPU体系结构上,使用带有MPI库的C/CUDA中的代码来求解实空间中的泊松方程。目前,我只对解决周期框中的问题感兴趣。但在将来,我可能想看看球面几何 是否存在解决此问题的现有例程? 2012年8月的评论似乎表明,中的推力库不适用于多GPU体系结构。这仍然正确吗 如果例程存在,它使用什么方法(Jacobi、SOR、Gauss-Seidel、Krylov)? 请就其速度和可能遇到的问题发表您的意见 谢谢你抽出时间 推力可以在多GPU环境中使用。您可以使用运行时api(即cudaSetDe

我试图在多GPU体系结构上,使用带有MPI库的C/CUDA中的代码来求解实空间中的泊松方程。目前,我只对解决周期框中的问题感兴趣。但在将来,我可能想看看球面几何

是否存在解决此问题的现有例程? 2012年8月的评论似乎表明,中的推力库不适用于多GPU体系结构。这仍然正确吗

如果例程存在,它使用什么方法(Jacobi、SOR、Gauss-Seidel、Krylov)? 请就其速度和可能遇到的问题发表您的意见


谢谢你抽出时间

推力可以在多GPU环境中使用。您可以使用运行时api(即cudaSetDevice)切换设备。由于推力隐式处理向量的分配和解除分配,因此必须注意确保在声明设备向量和解除分配设备向量(即超出范围)时选择正确的设备。

通过多GPU方法求解泊松方程,使用MPI协议与位于不同集群节点上的GPU进行交互是一个相对较新的研究课题。其基本思想是使用区域分解,以便每个GPU为计算区域的一部分求解,MPI用于交换边界数据

您可能希望查看GTC 2012上提交的论文,以及。特别是在第一种方法中,Navier-Stokes方程通过Chorin的投影方法求解,而投影方法又需要求解泊松方程,这是最苛刻的任务,并通过使用Jacobi预处理共轭梯度解算器的MultiGPU/MPI策略求解


关于可用的例程,在过去我碰到过一个天体物理学应用的可下载软件。作者声称,该代码包含各种GPU加速泊松解算器和混合OpenMP/MPI/GPU并行化。然而,我从来没有机会下载过它。

这是一个非常广泛的问题,没有得到很好的研究。“多GPU”和MPI是完全正交的概念。当您在分布式内存设置中使用MPI时,推力(或任何其他GPU代码)是否支持多GPU可能无关紧要。