OpenMP和MPI混合程序比纯MPI快吗?
我正在开发一些在4节点集群上运行的程序,每个节点上有4个内核。我有一个相当快的OpenMP版本的程序,它只在一个集群上运行,我正在尝试使用MPI扩展它。由于我的经验有限,我想知道哪一种会给我带来更快的性能,OpenMP混合体系结构还是仅MPI体系结构?我曾经看到过这样的说法,混合动力车的性能通常不能超过纯MPI车,但它没有提供支持证据,对我来说有点违反直觉 顺便说一句,我的平台使用infiniband互连节点 非常感谢,OpenMP和MPI混合程序比纯MPI快吗?,mpi,openmp,hpc,Mpi,Openmp,Hpc,我正在开发一些在4节点集群上运行的程序,每个节点上有4个内核。我有一个相当快的OpenMP版本的程序,它只在一个集群上运行,我正在尝试使用MPI扩展它。由于我的经验有限,我想知道哪一种会给我带来更快的性能,OpenMP混合体系结构还是仅MPI体系结构?我曾经看到过这样的说法,混合动力车的性能通常不能超过纯MPI车,但它没有提供支持证据,对我来说有点违反直觉 顺便说一句,我的平台使用infiniband互连节点 非常感谢, Bob共享内存通常比消息传递更高效,因为后者通常需要增加数据移动(将数据从
Bob共享内存通常比消息传递更高效,因为后者通常需要增加数据移动(将数据从源移动到目的地),这在性能和能量方面都很昂贵。预计这一成本将随着每一代人而持续增长 该材料指出,仅MPI应用程序通常与混合应用程序相当或优于混合应用程序,尽管它们通常具有更大的内存需求 然而,它们是基于这样一个事实,即所展示的大多数大型混合应用程序都是基于并行计算,然后是串行通信 此类实现通常容易出现以下问题:
但是,开发负载平衡且不会造成较大同步障碍的混合应用程序非常困难,目前有大量的研究工作来解决这一复杂性。这完全取决于您的MPI/OpenMP实现以及算法的设计(例如,MPI消息的数量和大小).为什么不分析这两种方法?@suszterpatt我知道,我在问一般意义上的问题,看看是否有任何关于两种不同方法的理论推理,一种方法肯定比另一种更好。这更像是快速排序优于冒泡排序?是的,这取决于实现,也取决于你真正想要什么,b但我们都知道快速排序在理论上更快。没有成熟的理论支持第一原理中的观点,即混合程序比纯程序更快(或更慢)。你将得到的唯一答案将来自实验。我可以根据自己的经验确认幻灯片。