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

问题描述 投票:0回答:4

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

parallel-processing mpi
4个回答
6
投票

大多数 MPI 实现使用共享内存在同一主机上的排之间进行通信。设置笔记本电脑不需要任何特殊操作。

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

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

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


4
投票

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

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

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

  • 再现性:除非您指定,否则几次运行都会导致完全相同的行为。添加更多跟踪会改变应用程序行为,您不会遇到任何 heisenbug;
  • 假设分析:能够在您无权访问或尚未构建的平台上进行测试;
  • 千里眼:您可以观察系统的每个部分,甚至在网络核心。

有关更多信息,请参阅 此演示文稿此文章

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


1
投票

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


1
投票

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

就我而言,我使用 Debian Linux (http://www.debian.org) 来处理所有并行的事情。我写了一篇关于“如何让 MPI 在 debian 机器上运行”的小文章。您可能想参考一下。

© www.soinside.com 2019 - 2024. All rights reserved.