在我的笔记本电脑中运行MPI代码

时间:2010-02-19 19:52:54

标签: core mpi

我是并行计算世界的新手。你能告诉我是否有可能运行c ++代码在我的笔记本电脑中使用双核心的MPI例程,或者是否有任何模拟器/模拟器可以做到这一点?

4 个答案:

答案 0 :(得分:6)

大多数MPI实现使用共享内存进行位于同一主机上的排名之间的通信。在设置笔记本电脑方面没有什么特别之处。

使用双核笔记本电脑,您可以运行两个级别,操作系统调度程序将倾向于将它们放在不同的核心上。 WinXP调度程序倾向于强制执行某种程度的“cpu绑定”,因为默认情况下,作业往往会安排在它们上次运行的核心上。但是,大多数MPI实现还允许显式“cpu绑定”,这将强制在一个特定核心上调度排名。其语法是非标准的,必须从特定的实现文档中获取。

您应该尝试在大学计算机运行的笔记本电脑上使用“相同”版本和MPI的实现。这将有助于确保MPI运行时标志相同。

大多数MPI实现附带某种“编译器包装器”或至少一组用于构建包含MPI库的应用程序的指令。要么使用那些包装,要么遵循这些说明。

答案 1 :(得分:4)

如果您对MPI应用程序的模拟器感兴趣,您应该检查SMPI。

这个开源模拟器(我参与其中)可以不修改地运行许多MPI C / C ++ / Fortran应用程序,并且相当准确地预测应用程序的运行时,前提是您对硬件平台有准确的描述。在线和离线研究都是可能的。

使用模拟器研究MPI应用程序还有许多其他优点:

  • 重现性:除非您指定,否则多次运行会导致完全相同的行为。你不会有任何heisenbugs添加一些更多的跟踪改变应用程序的行为;
  • 假设分析:能够在您无权访问或尚未构建的平台上进行测试;
  • Clairevoyance :即使在网络核心,您也可以观察系统的各个部分。

有关详细信息,请参阅this presentationthis article

SMPI框架甚至可以通过详尽的测试正式研究MPI应用程序的更正,如that presentation所示。

答案 2 :(得分:1)

MPI消息通过TCP网络传输(还有其他高性能可能性,如共享性能,但网络是默认设置)。因此,只要节点可以相互连接,应用程序就会运行并不重要。我想你想在你的笔记本电脑上测试应用程序,所以节点都在本地运行,并且可以通过环回网络轻松连接到彼此。

答案 3 :(得分:1)

我不太确定我是否理解你的问题,但笔记本电脑就像其他电脑一样。如果您已正确设置MPI库并设置路径,则可以在笔记本电脑上使用MPI例程。

就我而言,我使用Debian Linux(http://www.debian.org)来处理所有并行内容。我写了一篇关于HowTo get MPI run on debian machines的文章。你可能想参考它。