我正在尝试运行一个简单的 MPI 程序(多个数组添加),它在我的 PC 中完美运行,但只是挂起或在集群中显示以下错误。我正在使用 open mpi 和以下命令执行
集群网络配置(master&node1)
MASTER
eth0 Link encap:Ethernet HWaddr 00:22:19:A4:52:74
inet addr:10.1.1.1 Bcast:10.1.255.255 Mask:255.255.0.0 inet6 addr: fe80::222:19ff:fea4:5274/64 范围: Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX 数据包:16914 错误:0 丢弃:0 超限:0 帧:0 TX 数据包:7183 错误:0 丢弃:0 超限:0 运营商:0 冲突:0 txqueuelen:0 RX字节:2050581 (1.9 MiB) 发送字节:981632 (958.6 KiB)
eth1 Link encap:Ethernet HWaddr 00:22:19:A4:52:76
inet addr:192.168.41.203 Bcast:192.168.41.255 Mask:255.255.255.0 inet6 addr: fe80::222:19ff:fea4:5276/64 范围: Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX 数据包:701 错误:0 丢弃:0 超限:0 帧:0 TX 数据包:228 错误:0 丢弃:0 超限:0 运营商:0 冲突:0 txqueuelen:0 RX字节:75457 (73.6 KiB) 发送字节:25295 (24.7 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packet:88362 errors:0 drop:0 overruns:0帧:0 TX 数据包:88362 错误:0 丢弃:0 超限:0 载波:0 冲突:0 txqueuelen:0 RX 字节:21529504 (20.5 MiB) TX 字节:21529504 (20.5 MiB)
peth0 链接封装:以太网 HWaddr 00:22:19:A4:52:74
inet6 地址:fe80::222:19ff:fea4:5274/64 范围:链接 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packet:17175 错误:0 丢弃:0 超限:0 帧:0 TX 数据包:7257 错误:0 丢弃:0 超限:0 载波:0 冲突:0 txqueuelen:1000 RX 字节:2373869 (2.2 MiB) TX 字节:1020320 (996.4 KiB) 中断:16 内存:da000000-da012800
peth1 Link encap:Ethernet HWaddr 00:22:19:A4:52:76
inet6 addr:fe80::222:19ff:fea4:5276/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packet:1112 errors :0 丢弃:0 超限:0 帧:0 TX 数据包:302 错误:0 丢弃:0 超限:0 载波:0 冲突:0 txqueuelen:1000 RX 字节:168837 (164.8 KiB) TX 字节:33241 (32.4 KiB) 中断:16 内存:d6000000-d6012800
virbr0 Link encap:Ethernet HWaddr 52:54:00:E3:80:BC
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packet:0 errors:0丢弃:0 超限:0 帧:0 TX 数据包:0 错误:0 丢弃:0 超限:0 载波:0 冲突:0 txqueuelen:0 RX 字节:0 (0.0 b) TX 字节:0 (0.0 b)
NODE 1
eth0 Link encap:Ethernet HWaddr 00:22:19:53:42:C6
inet addr:10.1.255.253 Bcast:10.1.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packet:16559 errors:0丢弃:0 超限:0 帧:0 TX 数据包:7299 错误:0 丢弃:0 超限:0 载波:0 冲突:0 txqueuelen:0 RX 字节:1898811 (1.8 MiB) TX 字节:1056294 (1.0 MiB)
lo 链路封装:本地环回
inet 地址:127.0.0.1 掩码:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 指标:1 RX 数据包:25 错误:0 丢弃:0 超限:0 帧:0 TX 数据包:25 错误:0 丢弃:0 超限:0 载波:0 冲突:0 txqueuelen:0 RX 字节:3114 (3.0 KiB) TX 字节:3114 (3.0 KiB)
peth0 链路封装:以太网 HWaddr 00:22:19:53:42:C6
UP BROADCAST RUNNING MULTICAST MTU:1500 指标:1 RX 数据包:16913 错误:0 丢弃:0 超限:0 帧:0 TX 数据包:7276 错误:0丢弃:0 超限:0 载波:0 冲突:0 txqueuelen:1000 RX 字节:2221627 (2.1 MiB) TX 字节:1076708 (1.0 MiB) 中断:16 内存:f8000000-f8012800
virbr0 Link encap:Ethernet HWaddr 52:54:00:E7:E5:FF
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packet:0 errors:0丢弃:0 超限:0 帧:0 TX 数据包:0 错误:0 丢弃:0 超限:0 载波:0 冲突:0 txqueuelen:0 RX 字节:0 (0.0 b) TX 字节:0 (0.0 b)
错误
mpirun -machinefile machine -np 4 ./query
error code:
[[22877,1],0][btl_tcp_endpoint.c:638:mca_btl_tcp_endpoint_complete_connect] connect() to 192.168.122.1 failed: Connection refused (111)
代码
#include <mpi.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define group MPI_COMM_WORLD
#define root 0
#define size 100
int main(int argc,char *argv[])
{
int no_tasks,task_id,i;
MPI_Init(&argc,&argv);
MPI_Comm_size(group,&no_tasks);
MPI_Comm_rank(group,&task_id);
int arr1[size],arr2[size],local1[size],local2[size];
if(task_id==root)
{
for(i=0;i<size;i++)
{
arr1[i]=arr2[i]=i;
}
}
MPI_Scatter(arr1,size/no_tasks,MPI_INT,local1,size/no_tasks,MPI_INT,root,group);
MPI_Scatter(arr2,size/no_tasks,MPI_INT,local2,size/no_tasks,MPI_INT,root,group);
for(i=0;i<size/no_tasks;i++)
{
local1[i]+=local2[i];
}
MPI_Gather(local1,size/no_tasks,MPI_INT,arr1,size/no_tasks,MPI_INT,root,group);
if(task_id==root)
{
printf("The Array Sum Is\n");
for(i=0;i<size;i++)
{
printf("%d ",arr1[i]);
}
}
MPI_Finalize();
return 0;
}