在 C 中执行简单 MPI 程序时集群挂起/显示错误

2024-02-06

我正在尝试运行一个简单的 MPI 程序(多个数组加法),它在我的 PC 中完美运行,但只是挂起或在集群中显示以下错误。 我正在使用 open mpi 和以下命令来执行

集群网络配置(主节点1)

            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 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16914 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7183 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2050581 (1.9 MiB)  TX bytes: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 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:701 errors:0 dropped:0 overruns:0 frame:0
          TX packets:228 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:75457 (73.6 KiB)  TX bytes: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 packets:88362 errors:0 dropped:0 overruns:0 frame:0
          TX packets:88362 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:21529504 (20.5 MiB)  TX bytes:21529504 (20.5 MiB)

peth0     Link encap:Ethernet  HWaddr 00:22:19:A4:52:74  
          inet6 addr: fe80::222:19ff:fea4:5274/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:17175 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7257 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2373869 (2.2 MiB)  TX bytes:1020320 (996.4 KiB)
          Interrupt:16 Memory: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 packets:1112 errors:0 dropped:0 overruns:0 frame:0
          TX packets:302 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:168837 (164.8 KiB)  TX bytes:33241 (32.4 KiB)
          Interrupt:16 Memory: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 packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes: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 packets:16559 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7299 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1898811 (1.8 MiB)  TX bytes:1056294 (1.0 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:25 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3114 (3.0 KiB)  TX bytes:3114 (3.0 KiB)

peth0     Link encap:Ethernet  HWaddr 00:22:19:53:42:C6  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16913 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7276 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2221627 (2.1 MiB)  TX bytes:1076708 (1.0 MiB)
          Interrupt:16 Memory: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 packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Error

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)

Code

#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;
}

告诉 Open MPI 不要使用虚拟桥接口virbr0通过 TCP/IP 发送消息的接口。或者更好地告诉它只使用eth0为目的:

$ mpiexec --mca btl_tcp_if_include eth0 ...

这来自 Open MPI 的贪婪行为tcp使用 TCP/IP 传输消息的 BTL 组件。它尝试使用每个节点上的所有可用网络接口,以最大化数据带宽。两个节点都有virbr0配置相同的子网地址。 Open MPI 无法识别两个地址是相等的,但由于子网匹配,它假设它应该能够进行通信virbr0。因此,进程 A 正在尝试向驻留在另一个节点上的进程 B 发送消息。进程B监听端口P进程 A 知道这一点,因此它尝试连接到192.168.122.1:P。但这实际上是给的地址virbr0进程 A 所在节点上的接口,因此该节点尝试在不存在的端口上与自身通信,因此出现“连接被拒绝”错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C 中执行简单 MPI 程序时集群挂起/显示错误 的相关文章

  • 如何从 kubernetes 集群内部访问主机的 localhost

    在此应用程序中 nodejs pod 在 kubernetes 内部运行 而 mongodb 本身作为 localhost 位于主机外部 这确实不是一个好的设计 但它只适用于开发环境 在生产中 将有一个单独的 mongodb 服务器 因为这
  • Windows Phone 7 可以实现 ping 吗?

    为了了解 WP7 中的网络功能 我将构建一个简单的 ping 应用程序 该应用程序将显示对某个主机的 ICMP ping 请求的结果 然而 不仅System Net NetworkInformation Ping班级不见了 System N
  • 如何在 Android 上检测从 3g 到 H+ 的网络类型更改

    通过连接管理器和广播接收器 我能够获取连接和断开连接事件 如下所述埃里克的帖子在这里 https stackoverflow com questions 1783117 network listener android 我想知道的是网络连接
  • 从redis中检索大数据集

    一台服务器上的应用程序查询另一台服务器上运行的 Redis 查询的结果数据集约为 250kzrangebyscore objects locations inf inf这在应用程序服务器上似乎需要 40 秒 当使用命令执行时redis cl
  • C++ Boost.asio Ping

    我正在尝试编写一个程序来列出网络上设备的所有 IP 地址 其主要组成部分之一是能够对设备执行 ping 操作 这个程序必须在Linux Windows和Mac上运行 所以我选择了Boost库 我设法在文档中找到这个示例 http www b
  • Python 套接字库认为套接字未打开时已打开

    我正在使用一些Python 如下所示 HOST 127 0 0 1 PORT 43434 single socket socket socket AF INET socket SOCK STREAM try single bind HOST
  • C# Dns.GetHostEntry() - 异常:没有这样的主机已知

    From 文档 https learn microsoft com en us dotnet api system net dns gethostentry view netframework 4 8 Dns GetHostEntry 将主
  • IE 下的 Http 请求速度变慢

    在我的 javascript 应用程序中工作时 我注意到使用 IE 11 时 相同的 ajax 请求时间最多延长 10 倍 响应大小完全相同 12 6KB 我看到的唯一区别是 IE 添加 Pragma no cache 不是铬 Chrome
  • 当点击 JButton 连接到服务器时,程序冻结

    我正在使用 Java 中的 TCP 进行简单的 1v1 私人聊天 目前 每当我使用 JButtons 时都会遇到问题 这是我第一次尝试使用 JButtons 和 ActionListeners 所以我不能 100 确定这里发生了什么 我有两
  • 基于邻近度的负载均衡

    我正在开展一个项目 我们在世界各地拥有大量 目前为 5 台 服务器 客户端通过集中式代理连接到其中一台服务器 我们知道客户的原籍国 但除此之外一无所知 我们完全控制服务器 因此我们可以获得所需的所有信息 我们不控制客户 他们必须按照标准通过
  • 使用 Shell 脚本提供密码

    我已将客户端和服务器设置为无密码登录 就像无密码登录一样 通过将服务器的 RSA 密钥复制到所有客户端的 root ssh id rsa pub 来实现 但这是我手动完成的 我喜欢使用 shell 脚本自动执行此过程 并通过脚本向计算机提供
  • 什么是接口标识符

    我有一台笔记本电脑 使用一个或多个网络适配器连接到我组织的网络 我正在尝试编写一个工具来持续监控每个网络的连接状态和连接质量 然而 我的网络知识有限 术语让我感到困惑 特别是查找所有网络适配器 有人建议我使用命令ifconfig它给了我所谓
  • 本地主机:8080 是什么意思? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有什么区别本地主机 网络 vs 本地主机 8080 web TCP IP 连接始终与 IP 地址建立 您可以将 IP 地址视为某台计算机的
  • 如何在MPI中传递2D数组并使用C语言创建动态标签值?

    我是 MPI 编程新手 我有一个 8 x 10 数组 需要用它来并行查找每行的总和 在等级 0 进程 0 中 它将使用 2 维数组生成 8 x 10 矩阵 然后我会用tagnumber 作为数组的第一个索引值 行号 这样 我可以使用唯一的缓
  • 集群应用程序服务器中的 JMS 主题订阅者如何接收消息?

    假设我创建了一个带有一个订阅者 PropertiesSubscriber 的 JMS 主题 PropertiesTopic PropertiesSubscriber 运行在负载平衡的应用程序服务器集群中 如下图所示 替代文本 http ww
  • 使用 Flash 在本地托管游戏?

    我只是找不到合适的谷歌搜索词 是否可以使用 Flash 或 Flash 兼容服务 来允许游戏中的玩家通过 Web 浏览器托管自己的游戏 使用自己的带宽 在某种程度上 从他们的计算机运行他们自己的游戏服务器 对于 Flash 浏览器内游戏 但
  • C# 自动检测代理设置

    C 2008 SP1 我正在使用代码来检测是否已在 Internet 选项 下设置代理 如果有代理 那么我将在我的网络客户端中设置它 所以我只是检查代理的地址是否存在 如果没有 则说明 Web 客户端中没有要设置的代理 这是执行此操作的正确
  • 为什么 TCP 段中的 SYN 或 FIN 位会占用序列号空间中​​的一个字节?

    我试图理解这种设计背后的基本原理 我浏览了一些 RFC 但没有发现任何明显的东西 这并不是特别微妙 这样 SYN 和 FIN 位本身就可以被确认 因此如果丢失则可以重新发送 例如 如果连接关闭而没有发送更多数据 那么如果 FIN 没有发送任
  • 在 Python 中通过网络发送对象的最佳方式是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我需要通过网络发送对象 我将使用 Twisted 并且我刚刚开始查看它的文档 据我所知 python实现套接字的唯一方式是通过文本 那么我如何使
  • iOS 上的多个 HTTP 请求与单个 TCP 连接

    我正在开发一个 iPhone 应用程序 它使用我控制的基于 Web 的 API 连接到持续打开的 TCP 端口并通过 TCP API 发出请求 或者为我想要获取的所有数据发出新的 HTTP 请求 会更快或更高效吗 我认为差异可以忽略不计 但

随机推荐

  • 根据其他数据框中提供的范围值创建新列

    我有两个数据框 其中一个数据框作为参考表 另一个包含实际值 gt gt gt reference table MinRange MaxRange Multiplier Group 0 10 30 2 A 1 10 40 4 B 2 10 1
  • 使用 Java/JNI 时 Linux 上的信号处理

    我从事在 Wind River Linux 上运行的嵌入式系统的工作 它是 Java 和 C 的混合体 并带有一些用于技术之间通信的 JNI 我们构建了自定义错误处理 以便在出现任何意外错误时生成回溯和其他信息来帮助我们确定问题 此错误处理
  • Intel 64架构中CALLF(Far Call)可以有64位地址内存操作数吗?

    在 Intel 32 位架构中 我可以使用 ModR M 字节调用 32 位地址位置 根据英特尔手册 我需要 2 010B 用于操作码扩展 00B 用于 Mod 101B 允许我拥有 32 位位移 如果我想在 64 位架构中进行远调用 以便
  • alpha 版和 beta 版有什么区别?

    我想在不同的环境中部署我的软件并逐步提供功能 我应该何时何地使用 alpha 和 beta 版本 阿尔法版本 这是当您正在开发的功能不完整或部分完成时发布的版本 假设在机票预订系统中 您已经开发了座位选择 但仍保留支付实现 在这种情况下 您
  • 散点图的 Highcharts 图例符号大小

    我在为具有不同符号大小的 3d 散点图渲染图例时遇到问题 请参阅http jsfiddle net YyV6x 4 http jsfiddle net YyV6x 4 图例采用与主图表中相同大小的符号 并且图例项目的位置完全偏离 我尝试强制
  • 如何改进该算法来解决修改后的邮票难题?

    飞镖之子问题 http azspcs net Contest SonOfDarts是一场比赛Al Zimmermann 的编程竞赛 http azspcs net 于 2010 年 6 月 20 日结束 假设您有一个分为 R 个区域的飞镖靶
  • PSR-2 PHP 三元语法中是否需要括号?

    问题 PSR 2 PHP 三元语法中是否需要括号 寻找以下三元语句的语法中的哪一个 如果有的话 符合 PSR 2 我还需要指向文档或一些权威链接 error error status Error No Error OR error erro
  • 在 Tablayout 中设置可滚动或固定模式以实现动态选项卡数量

    我想要 tab 模式可使用选项卡滚动填充选项卡 具有单行标题 由于选项卡的数量及其标题是动态的在我的应用程序中 我该如何处理他们 当我设置给定的属性时 当选项卡数量较多时 选项卡标题分为两行 app tabGravity fill app
  • AWS S3 内联显示文件而不是强制下载

    由于某些原因 我的 S3 存储桶中的文件被强制下载 而不是内嵌显示 因此 如果我复制图像链接并将其粘贴到地址栏中 然后导航到它 它将促使我的浏览器下载它 相反 我实际上必须单击 打开图像 才能转到该网址 任何更改 S3 提供文件的方式的方法
  • 每次页面查看的成本哪个更高 - 数据库写入或文件写入?

    当您需要在应用程序中的每个页面视图上记录一些数据时 最有效的解决方案是什么 应该写入文件还是写入数据库 或者也许两者都不是 也许您应该将数据缓存在内存或文件中 并且只偶尔将其写入数据库 或文件系统 如果您使用内存缓存 如果只是记录少量数据而
  • 是否可以为组合类设置CSS?

    假设我有以下内容 tr background fff tr even background eee tr highlight background fec 是否可以指定第四个背景 fea 而不是有highlight只需覆盖even tr c
  • netBeans 图形用户界面问题

    我在 netBeans 中设计了这个 gui 它有一个 canvas 几个 JtextAreas 和一个 Jbutton 它在预览中看起来很棒 问题是当我运行实际程序时 文本区域会缩小 直到程序在其中打印一些内容 然后它们扩展到完整尺寸 J
  • jQuery 中两个按钮的功能相同

    我有两个按钮 btnAdd and btnUpdate 我为按钮编写了一个 jquery 函数btnUpdate验证网页中的某些字段 例如 function click function code here 我想做同样的事情btnAdd被点
  • kbuild 实际上是如何工作的?

    当我开发 Linux 驱动程序时 我读过如何通过此编写 linux kbuild makefiledocument https www kernel org doc Documentation kbuild makefiles txt 我知
  • HTTPS 和外部 (CDN) 托管文件?

    我有一个页面引用了几个外部托管的 javascript 文件 即 谷歌上的 jQuery http code google com apis libraries devguide html and YUI 使用 YUI 加载器 http d
  • 已编译的查询和“参数不能是序列”

    我认为编译的查询将执行与 DataContext 相同的查询转换 然而 当我尝试使用带有 Contains 方法调用的查询时 出现运行时错误 我哪里出错了 private member which holds a compiled quer
  • 发送大量UDP数据包时如何减少系统调用开销? (Windows 和 Linux)

    例如 我在 Windows 上发送 100000 个 UDP 数据包 对于每个数据包 我需要调用WSASendTo 一次 所以可能会引入很多系统调用开销 有没有办法进行批量发送并减少这种开销 我在谷歌搜索了一段时间后找不到适用于 Windo
  • 如何在android中像没有微调器的微调器一样弹出列表?

    我的活动中有一个微调器小部件 可让用户选择列表名称 通常 微调器的功能是在列表之间切换 但对于几个实例 我交换了选择更改侦听器以使用相同的选项列表执行不同的功能 一旦做出选择 老听众就会恢复 生活继续 这是一个糟糕且有问题的安排 相反 我想
  • 使用 connect by 子句递归插入

    我在表中有分层数据 右 按照以下方式创建层次结构 如左所示 表保存在 oracle 11g 中 TREE Hierarchy Tree Table Element Parent P0 P0 P1 P1 P0 P11 P2 P0 C111 P
  • 在 C 中执行简单 MPI 程序时集群挂起/显示错误

    我正在尝试运行一个简单的 MPI 程序 多个数组加法 它在我的 PC 中完美运行 但只是挂起或在集群中显示以下错误 我正在使用 open mpi 和以下命令来执行 集群网络配置 主节点1 MASTER eth0 Link encap Eth