【发布时间】:2020-02-11 21:09:21
【问题描述】:
我正在开发一个需要花费一些时间的应用程序 在两个节点上运行时的其他操作。 由于我自己的计算机显然被视为节点,我想知道我是否可以操纵 MPI 以相信我在两个节点上运行,例如每个节点有两个内核。这让我在在集群上测试之前在自己的计算机上测试和调试我的应用程序变得更容易一些。
我在 Linux 机器上使用 Intel MPI
【问题讨论】:
-
你的应用使用
MPI_Comm_split_type()吗?如果不是,它目前如何确定它在两个不同的节点上运行? -
取决于您使用的 MPI 发行版(例如:MPICH、OpenMPI...),语法不同,但概念是:配置一个您指定“localhost 有 2 个插槽”的主机文件.您将使用“localhost”填充您的主机文件。哪个分布?我们说的是 linux 主机,不是吗?
-
我正在使用这个 Yes 并使用 MPI_COMM_TYPE_SHARED 作为类型拆分。我在 Linux 上运行并使用英特尔的发行版。
-
在这种情况下,我只需重写
MPI_Comm_split_type()以返回两个通信器并欺骗您的应用程序使其相信它运行在两个节点上。 -
我同意 Gilles - 但可能会将其作为拆分例程的包装器,然后根据硬件平台执行适当的操作