首页 > 解决方案 > 如何在 MPICH 中使用 MPI_Info_set 和 MPI_Comm_spawn

问题描述

我需要在集群上使用 MPI spawn。为此,我知道我需要使用 MPI_Info_set 来指定节点将运行生成的进程。我已经尝试过MPI_Info_set(info, "add-host","node1,node2"),但它不起作用。

下面,我提供了一个生成代码的小示例:

MPI_Info info;
MPI_Info_create(&info);
MPI_Info_set(info,"add-host","node1,node2");
MPI_Comm_spawn("./mpiworker", MPI_ARGV_NULL,
               dynamic_procs,
               info, 0, MPI_COMM_WORLD,
               &intercomm,
               MPI_ERRCODES_IGNORE);

还有什么我可以使用的吗?

标签: mpicluster-computingspawnmpich

解决方案


参数add-host可能来自 OpenMPI(手册页),MPICH 不支持它。

对于 MPICH 尝试其中之一:

  • host- 为我工作,
  • hosts- 应该可以工作,但是,它似乎在我当前使用的版本中被破坏了,并且 MPI 在作为参数值传递的第一个节点处生成所有进程;如果您的情况也发生这种情况,我建议使用MPI_Comm_spawn_multiple.

另外,我不知道如何找到所有受支持参数的列表——我认为 MPICH 的人不太注意保持文档的完整性。


推荐阅读