OpenMPI挂起三个节点

时间:2012-02-29 16:56:26

标签: c parallel-processing openmpi

您好:我刚刚为我设置了一个OpenMPI环境,我已经设置了三个虚拟机,并设置了无密码认证等。我有一个简单的“Hello World”风格程序已成功编译/链接:

#include <stdio.h>
#include <mpi.h>

int main(int argc, char *argv[]) {
  int numprocs, rank, namelen;
  char processor_name[MPI_MAX_PROCESSOR_NAME];

  MPI_Init(&argc, &argv);
  MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
  MPI_Comm_rank(MPI_COMM_WORLD, &rank);
  MPI_Get_processor_name(processor_name, &namelen);

  printf("Process %d on %s out of %d\n", rank, processor_name, numprocs);

  MPI_Finalize();
}

我观察到的是当我在“机器文件”中拥有三个不同节点的主机名时,作业挂起。每个单独的节点都运行正常 - 我也尝试过两个节点的组合(即三个节点中的任意两个),并且它可以正常工作。所以,我可以忽略任何节点不工作的可能性。

我该如何进一步调查?谢谢!

2 个答案:

答案 0 :(得分:0)

printf或文件IO在这里无关紧要。

我刚刚在Open MPI自述文件中添加了一个关于此的部分,请查看https://svn.open-mpi.org/trac/ompi/browser/branches/v1.5/README#L1404。简短版本:尝试mpirun'ing一些非MPI应用程序,如主机名或正常运行时间。如果那些不起作用,那么就会阻止OMPI的运行时环境正常启动(这是我怀疑这里发生的事情)。

(如果您害怕获得SSL警告,请获取该网站的CA SSL证书:http://www.cs.indiana.edu/Facilities/FAQ/Mail/csci.crt。这是来自美国印第安纳大学计算机科学系的CA;他们是我们的托管服务提供商)< / p>

您是否已禁用防火墙?或者,如果你是偏执狂,启用了防火墙,但是在运行Open MPI作业的所有节点之间启用了随机TCP端口通信? (iptables配置正确很棘手 - 您可能希望首先尝试禁用它,如果可行,那么尝试弄清楚如何允许可信节点之间的随机TCP端口通信)

答案 1 :(得分:0)

我想出(有时候回来)我的机器文件中没有插槽,而且我运行的作业多于节点数(4个作业,3个节点)。这就是原因。对不起,这太傻了。