我是并行计算世界的新手。你能告诉我是否可以在我的双核笔记本电脑上使用 MPI 例程运行 C++ 代码,或者是否有任何模拟器/模拟器可以做到这一点?
大多数 MPI 实现使用共享内存在同一主机上的排之间进行通信。设置笔记本电脑不需要任何特殊操作。
使用双核笔记本电脑,您可以运行两个等级,操作系统调度程序往往会将它们放置在单独的核心上。 WinXP 调度程序倾向于强制执行某种程度的“CPU 绑定”,因为默认情况下作业倾向于调度在它们上次运行的核心上。然而,大多数 MPI 实现还允许显式“CPU 绑定”,这将强制在一个特定核心上调度一个等级。其语法是非标准的,必须从特定的实现文档中获取。
您应该尝试在笔记本电脑上使用与大学计算机运行“相同”的 MPI 版本和实现。这将有助于确保 MPI 运行时标志相同。
大多数 MPI 实现都附带某种“编译器包装器”或至少一组用于构建包含 MPI 库的应用程序的指令。要么使用这些包装,要么遵循这些说明。
如果您对 MPI 应用程序的模拟器感兴趣,您可能应该检查 SMPI。
这个开源模拟器(我参与其中)可以运行许多未经修改的 MPI C/C++/Fortran 应用程序,并且可以相当准确地预测应用程序的运行时间,前提是您对硬件平台有准确的描述。线上线下都可以学习。
使用模拟器研究 MPI 应用程序还有许多其他优点:
SMPI 框架甚至可以通过详尽的测试正式研究 MPI 应用程序的修正,如该演示所示。
MPI 消息通过 TCP 网络传输(还有其他高性能可能性,例如共享性能,但网络是默认设置)。因此,只要节点可以相互连接,应用程序在哪里运行根本不重要。我猜您想在笔记本电脑上测试该应用程序,因此节点都在本地运行,并且可以通过环回网络轻松地相互连接。
我不太确定我是否理解你的问题,但笔记本电脑就像任何其他计算机一样。如果您已正确设置 MPI 库并设置路径,您当然可以在笔记本电脑上使用 MPI 例程。
就我而言,我使用 Debian Linux (http://www.debian.org) 来处理所有并行的事情。我写了一篇关于“如何让 MPI 在 debian 机器上运行”的小文章。您可能想参考一下。