我是并行计算世界的新手。你能告诉我是否有可能运行c ++代码在我的笔记本电脑中使用双核心的MPI例程,或者是否有任何模拟器/模拟器可以做到这一点?
答案 0 :(得分:6)
大多数MPI实现使用共享内存进行位于同一主机上的排名之间的通信。在设置笔记本电脑方面没有什么特别之处。
使用双核笔记本电脑,您可以运行两个级别,操作系统调度程序将倾向于将它们放在不同的核心上。 WinXP调度程序倾向于强制执行某种程度的“cpu绑定”,因为默认情况下,作业往往会安排在它们上次运行的核心上。但是,大多数MPI实现还允许显式“cpu绑定”,这将强制在一个特定核心上调度排名。其语法是非标准的,必须从特定的实现文档中获取。
您应该尝试在大学计算机运行的笔记本电脑上使用“相同”版本和MPI的实现。这将有助于确保MPI运行时标志相同。
大多数MPI实现附带某种“编译器包装器”或至少一组用于构建包含MPI库的应用程序的指令。要么使用那些包装,要么遵循这些说明。
答案 1 :(得分:4)
如果您对MPI应用程序的模拟器感兴趣,您应该检查SMPI。
这个开源模拟器(我参与其中)可以不修改地运行许多MPI C / C ++ / Fortran应用程序,并且相当准确地预测应用程序的运行时,前提是您对硬件平台有准确的描述。在线和离线研究都是可能的。
使用模拟器研究MPI应用程序还有许多其他优点:
有关详细信息,请参阅this presentation或this 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的文章。你可能想参考它。