Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在集群上运行mpi程序_Mpi_Openmpi - Fatal编程技术网

在集群上运行mpi程序

在集群上运行mpi程序,mpi,openmpi,Mpi,Openmpi,我在群集上运行mpi程序时遇到问题 我的主机文件如下所示: 10.0.9.1 slots=2 10.0.12.1 slots=2 10.0.11.1 slots=2 10.0.10.1 slots=2 10.0.6.1 slots=2 10.0.5.1 slots=2 10.0.4.1 slots=2 10.0.2.1 slots=2 10.0.1.1 slots=2 如你所见,我有8个节点。运行后,某些进程结束工作,但其他返回错误: node02][[62903,1],7][btl_tcp_

我在群集上运行mpi程序时遇到问题

我的主机文件如下所示:

10.0.9.1 slots=2
10.0.12.1 slots=2
10.0.11.1 slots=2
10.0.10.1 slots=2
10.0.6.1 slots=2
10.0.5.1 slots=2
10.0.4.1 slots=2
10.0.2.1 slots=2
10.0.1.1 slots=2
如你所见,我有8个节点。运行后,某些进程结束工作,但其他返回错误:

node02][[62903,1],7][btl_tcp_endpoint.c:796:mca_btl_tcp_endpoint_complete_connect] connect() to 10.1.4.1 failed: No route to host (113)
[node04][[62903,1],15][btl_tcp_endpoint.c:796:mca_btl_tcp_endpoint_complete_connect] connect() to 10.1.5.1 failed: No route to host (113)
我很惊讶node02正在尝试连接10.1.4.1主机(我在主机中没有这个地址等等)。 第二个错误类似于前一个错误,即节点4试图连接10.1.5.1。我的地址是10.0.x.1而不是10.1.x.1为什么是10.0.x.1

modprobe: ERROR: could not insert 'ip_tables': Operation not permitted
iptables v1.4.21: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
编辑:

我测试了许多配置,发现我只能在任何节点上运行10个程序副本(-np 10)。任何较大的值(例如-np 12)都会得到上述错误

例如,节点的配置正常:

10.0.11.1 slots=1
10.0.10.1 slots=1
10.0.9.1 slots=1
10.0.6.1 slots=2
10.0.5.1 slots=1
10.0.4.1 slots=2
10.0.2.1 slots=2

您曾经遇到过这样的问题吗?

在Open MPI中,主机文件中的IP在内部用于启动作业。 如果您不是在受支持的资源管理器下运行,则
plm/rsh
组件将使用这些IP来
ssh
(或
rsh
)远程节点上的
orted
守护进程

对于通信,
btl/tcp
组件将检测所有可用接口并尝试全部使用

在您的情况下,您可能必须将
10.1.0.0/16
网络列入黑名单,或限制为
10.0.0.0/16
网络。这可以通过命令行实现:

mpirun --mca btl_tcp_if_exclude 10.1.0.0/16 ...

注意:您可能还必须重新限制用于连接作业的
oob/tcp
组件。与btl/tcp不同,此组件使用第一个工作IP,因此可能不需要

mpirun --mca btl_tcp_if_inlclude 10.0.0.0/16 --mca oob_tcp_if_include 10.0.0.0/16 ...

我添加了一些新信息,因为我可以使用任何节点,但只能使用程序的10个副本。这对我来说很奇怪……如果将网络限制为
10.0.0.0/16
,会发生什么?我的第一印象是
10.1.0.0/16
子网有问题,您可能“很幸运”它只处理少量任务。
mpirun --mca btl_tcp_if_inlclude 10.0.0.0/16 --mca oob_tcp_if_include 10.0.0.0/16 ...