MPI + CUDA优于纯MPI的任何优势?

cur*_*rer 5 algorithm cuda mpi

加速应用程序的常用方法是使用MPI或更高级别的库来并行化应用程序,例如使用MPI的PETSc.

然而,现在每个人似乎都有兴趣使用CUDA来并行化他们的应用程序或使用MPI和CUDA的混合来解决更大的问题.

使用混合MPI + CUDA编程模型比传统的,经过试验和测试的并行编程MPI模型有明显的优势吗?我特别在粒子方法的应用领域中提出这个问题

我提出这个问题的一个原因是网络上的任何地方我都看到"粒子方法自然地映射到GPU的架构"这一陈述或其中的一些变体.但他们似乎没有理由为什么我会更好地使用CUDA而不是仅使用MPI来完成相同的工作.

sus*_*att 12

这有点苹果和橘子.

MPI和CUDA是根本不同的架构.最重要的是,MPI允许您在多个节点上分发应用程序,而CUDA允许您在本地节点中使用GPU.如果在MPI程序中你的并行进程需要很长时间才能完成,那么是的,你应该研究如何通过使用GPU代替CPU来完成它们的工作.相反,如果您的CUDA应用程序仍然需要很长时间才能完成,您可能希望使用MPI将工作分发到多个节点.

这两种技术几乎是正交的(假设您的集群上的所有节点都支持CUDA).