Cygwin错误:tcp\u对等\u发送\u阻塞:发送()到套接字

Cygwin错误:tcp\u对等\u发送\u阻塞:发送()到套接字,cygwin,openmpi,Cygwin,Openmpi,在我尝试安装新软件包之前,安装在Windows 7上的Cygwin工作正常。包安装失败。然后每次我想运行我的OpenMPI程序时,我都会遇到这个错误。我可以成功编译程序,但无法运行它。我甚至没有成功地删除并重新安装 谢谢你的提示。下面是示例错误消息 [重新加载的PC:03900][[3921,1],0]tcp_对等方_发送_阻止:发送()到套接字13失败:未连接传输终结点(128) [重新加载的PC:03900][[3921,1],0]tcp_对等方_发送_阻止:发送()到套接字13失败:未连接

在我尝试安装新软件包之前,安装在Windows 7上的Cygwin工作正常。包安装失败。然后每次我想运行我的OpenMPI程序时,我都会遇到这个错误。我可以成功编译程序,但无法运行它。我甚至没有成功地删除并重新安装

谢谢你的提示。下面是示例错误消息

[重新加载的PC:03900][[3921,1],0]tcp_对等方_发送_阻止:发送()到套接字13失败:未连接传输终结点(128)

[重新加载的PC:03900][[3921,1],0]tcp_对等方_发送_阻止:发送()到套接字13失败:未连接传输终结点(128)

[重新加载的PC:04676][[3921,1],2]tcp_peer_send_阻塞:发送()到套接字13失败:未连接传输终结点(128)


[重新加载的PC:04676][[3921,1],2]tcp_peer_send_blocking:send()到套接字13失败:传输端点未连接(128)

我对openmpi v 1.8.8(cygwin安装的软件包的默认版本)有相同的问题。手动返回到版本1.8.6为我修复了这个问题。

通过在“控制面板->网络和Internet->网络连接”中禁用未使用的网络适配器,问题得以解决

结果表明,未使用的网络适配器试图通过DHCP进行配置,当DHCP失败时,以“169.254.X.X”开头的IP地址被分配给该适配器。Cygwin上的openmpi使用该无效IP地址在进程之间建立通信


我通过查看/tmp/openmpi sessions-{username}/{PID of orterun}/contact.txt找到了答案。

我在Cygwin上遇到了与openmpi 1.10.4相同的问题

尝试将“-report uri-”添加到您的mpirun命令,以查看它尝试用于连接的IP地址:

mpirun -report-uri - -np 2 a.exe
它应该打印出一行,如下所示:

568328192.0;tcp://192.168.10.103,169.254.247.11,0.0.0.0,0.0.0.0,0.0.0.0:55600
如果“tcp://”之后的第一个IP地址不是您计算机的当前有效地址,这就是问题所在,并且很可能会出现故障(即使正确的IP稍后出现在列表中)。显然,ORTE不够聪明,无法根据实际启用和在线的内容订购接口

如果错误的IP对应于旧的/禁用的接口,请使用windows网络连接控制面板卸载它(如果可能)

在我的例子中,第一个地址是一个旧硬件适配器的DHCP地址,我很久以前就删除并扔掉了(但显然没有在软件中卸载)。Windows通常会在控制面板中隐藏这些已删除但未卸载的接口,但设置仍保留在注册表中的以下位置:

HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\


在注册表子项中搜索伪造的IP地址,很可能会找到有问题的接口。我通过更改注册表项中的IP地址以匹配我当前的静态IP来修复我的问题,但是完全卸载接口也可能会起作用。

我刚刚遇到了这个问题,在我的情况下,我不得不禁用“VirtualBox仅主机网络”适配器(我最近安装了virtualbox,此后直到今天才在cygwin中使用openmpi)。

1。打开cygwin终端

mpicc --version

mpirun --version
如果不执行,请按照下面的文档重新安装所有内容

2.尝试关闭蓝牙,然后再次测试您的程序

3.尝试关闭Wifi并再次测试您的程序(您可以连接到有线互联网)

4.打开C:\Windows\System32\drivers\etc\hosts 添加行

并再次测试您的程序

5.如果您有VirtualBox或类似的虚拟网络,请关闭控制面板并再次测试您的程序

6.如果可能,请完全卸载VirtualBox。重新启动计算机并再次测试程序

7。尝试关闭Windows防火墙,然后再次测试您的程序


上述步骤解决了“tcp_peer_send_阻塞:发送()到套接字12失败:传输端点未连接”这两个问题Windows 10-Cygwin MPI中的错误和缓慢问题。

您提供屏幕截图而不是文本有什么原因吗?没有原因,我只是想显示我收到的错误的示例屏幕截图…然后请发布可以索引和复制的文本而不是屏幕截图。这非常有用。感谢您不用更改注册表(由于可能很难判断某些接口是否已删除但未卸载),我发现您可以通过以下方法解决此问题。只要确保有效的IP地址具有最高优先级即可。:-)
127.0.0.1 localhost cygdrive wpad