gpt4 book ai didi

r - R 雪中的 makeCluster 函数无限期挂起

转载 作者:行者123 更新时间:2023-12-04 11:46:09 24 4
gpt4 key购买 nike

我正在使用 makeCluster R 包中的函数 snow从 Linux 机器上启动一个远程 Linux 机器上的 SOCK 集群。两台机器成功通信的一切似乎都已解决(我能够在两者之间建立 ssh 连接)。但:

makeCluster("192.168.128.24",type="SOCK")

不会抛出任何结果,只是无限期挂起。

我究竟做错了什么?

非常感谢

最佳答案

不幸的是,在创建雪(或并行)集群对象时有很多事情可能会出错,最常见的失败模式是无限期挂起。问题是makeSOCKcluster一个接一个地启动集群worker,每个worker(如果成功启动)必须在master继续启动下一个worker之前与master建立一个socket连接。如果任何 worker 无法连接回 master,makeSOCKcluster将挂起而没有任何错误消息。工作人员可能会发出错误消息,但默认情况下,任何错误消息都会重定向到 /dev/null .

除了ssh问题,makeSOCKcluster可能挂起,因为:

  • R 未安装在工作机器上
  • worker 机器上没有安装雪
  • R或snow没有安装在与本地机器相同的位置
  • 当前用户在工作机器上不存在
  • 网络问题
  • 防火墙问题

  • 还有更多的可能性。

    换句话说,没有更多信息,没有人能够诊断出这个问题,因此您必须进行一些故障排除才能获得该信息。

    根据我的经验,最有用的故障排除技术是手动模式,您可以通过指定 manual=TRUE 启用该模式。创建集群对象时。设置 outfile="" 也是个好主意以便工作人员的错误消息不会重定向到 /dev/null :
    cl <- makeSOCKcluster("192.168.128.24", manual=TRUE, outfile="")
    makeSOCKcluster将显示要在指定机器上的终端中执行的 Rscript 命令,然后它会等待您执行该命令。换句话说, makeSOCKcluster 将挂起,直到您在主机 192.168.128.24 上手动启动工作程序,在你的情况下。请记住,这是一种故障排除技术,而不是问题的解决方案,希望通过尝试手动启动来获取有关为什么工作人员不启动的更多信息。

    显然,使用手动模式可以绕过任何 ssh 问题(因为您没有使用 ssh),所以如果您可以在手动模式下成功创建 SOCK 集群,那么 ssh 可能是您的问题。如果未找到 Rscript 命令,则 R 未安装,或者安装在不同的位置。但希望您会收到一些错误消息,引导您找到解决方案。

    makeSOCKcluster在指定的机器上执行指定的 Rscript 命令后仍然挂起,那么您可能有网络或防火墙问题。

    有关更多故障排除建议,请参阅我对 making cluster in doParallel / snowfall hangs 的回答。 .

    关于r - R 雪中的 makeCluster 函数无限期挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17966055/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com