4

我编写了一些在大型集群上完美运行的 MPI 代码。集群中的每个节点都具有相同的 cpu 架构,并且可以访问网络(即“通用”)文件系统(以便每个节点都可以执行实际的二进制文件)。但考虑这种情况:

  • 我办公室里有一台带有双核处理器(英特尔)的机器。
  • 我家里有一台带有双核处理器(amd)的机器。

两台机器都运行linux,两台机器都可以在本地成功编译和运行MPI代码(即使用2核)。

现在,是否可以通过 MPI 将两台机器链接在一起,以便我可以利用所有 4 个内核,同时牢记不同的架构,并牢记没有共享(网络)文件系统的事实?

如果是这样,怎么做?

谢谢,本。

4

2 回答 2

5

它可以做到这一点。大多数 MPI 实现允许您指定要在不同机器上运行的二进制文件的位置。或者,确保它在两台机器上都在您的路径中。由于两台机器具有相同的字节顺序,这应该不是问题。您必须确保各个进程读取的任何输入数据在两个位置都可用。

这样做有很多并发症。您需要确保系统之间的防火墙将允许进程启动和通信。机器之间的通信会慢得多,所以如果你的代码通信量很大或延迟不容忍,它可能会很慢。您在所有 4 个内核上运行的执行时间很可能比仅在单台机器上运行 2 个内核更长。

于 2010-06-17T15:32:41.543 回答
0

流程的位置没有地域限制。正如 KeithB 所说,两台机器上不需要有共同的路径,甚至不需要相同的二进制文件。根据您使用的 MPI 实现,您甚至不需要相同的字节序。

您可以在每台机器上准确指定二进制文件的路径,并且还可以拥有两个独立的二进制文件。但是,您应该注意,如果两个节点之间的通信基础设施不够快,程序将运行缓慢。

于 2011-03-04T15:39:54.267 回答