algorithm - MPI+CUDA 比纯 MPI 有什么优势?

标签 algorithm cuda mpi

加速应用程序的常用方法是使用 MPI 或更高级的库(如 PETSc,后者在底层使用 MPI)并行化应用程序。

然而,如今每个人似乎都对使用 CUDA 来并行化他们的应用程序或使用 MPI 和 CUDA 的混合体来解决更雄心勃勃/更大的问题感兴趣。

与传统的、久经考验的并行编程 MPI 模型相比,使用混合 MPI+CUDA 编程模型是否有任何明显的优势?我是专门在粒子方法的应用领域问这个问题的

我问这个问题的一个原因是,我在网络上到处都能看到“粒子方法自然地映射到 GPU 的架构”或类似的说法。但他们似乎从来没有证明为什么我使用 CUDA 比只使用 MPI 来完成相同的工作更好。

最佳答案

这是一点点苹果和橘子。

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

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

关于algorithm - MPI+CUDA 比纯 MPI 有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8061419/

相关文章:

linux - Ubuntu 14.04 CUDA 8.0 未满足的依赖关系

具有复杂命令的 Python 子进程

loops - 关于MPI并行循环的问题

python - 在特定时间间隔内找到列表最大值的最快方法

algorithm - 动态堆栈的摊销分析

algorithm - 找到最常出现的对

algorithm - 不用递归遍历非二叉树的算法是什么(使用栈)

c++ - CUDA 链接错误 - Visual Express 2008 - 由于(空)配置文件导致 nvcc 致命

cuda - 在这篇 NVIDIA 博客文章中,为什么通过共享内存复制速度更快?

mpi - 打开 MPI : using bind-to-core while oversubscribing