2010-02-19 178 views
3

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

回答

6

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

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

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

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

1

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

+0

谢谢。我如何创建本地节点?我的笔记本电脑是双核心,这意味着我可以将工作分配到两个处理单元中吗?我想要做的就是在我的机器上测试我的应用程序,然后将其提交给大学超级计算机。 作为Windows XP用户应该怎么做? – SRec0 2010-02-19 20:53:57

+0

-1所有主要的MPI实现默认使用共享内存在同一节点上的队列之间传递消息。 – 2010-02-19 23:19:57

1

我不太清楚如果我理解你的问题,但是笔记本电脑就像其他任何电脑一样。如果您已经正确设置了MPI库并设置了路径,那么您当然可以在您的笔记本电脑上使用MPI例程。

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

+0

谢谢S.Tayefeh,当我将作品提交给Linux-Unix机器时,我将使用您的经验,真实的。但是,现在我只是在我的笔记本电脑上测试我的应用程序,却没有连接到任何其他机器。任何建议? – SRec0 2010-02-19 20:56:23

4

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

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

有使用模拟器来研究MPI应用等诸多优势:

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

欲了解更多信息,请参阅this presentationthis article

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

相关问题