可以在互联网上而不是在LAN群集中分发MPI(C++)程序吗?

Ben*_*n J 4 c++ mpi openmpi mpich mpic++

我写了一些MPI代码,可以在大型集群上完美运行.集群中的每个节点都具有相同的cpu体系结构,并且可以访问联网(即"公共")文件系统(这样每个节点都可以超越实际的二进制文件).但请考虑这种情况:

  • 我的办公室里有一台配有双核处理器(intel)的机器.
  • 我家里有一台带双核处理器的机器(amd).

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

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

如果是这样,怎么样?

谢谢,本.

Kei*_*thB 5

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

这样做有很多并发症.您需要确保系统之间的防火墙允许进程启动和通信.机器之间的通信速度会慢得多,因此如果您的代码是通信繁重或延迟不容忍,那么它可能会非常慢.很可能在所有4个内核上运行的执行时间比在单个机器上运行2更长.