1

我正在尝试doParallel在多个 Windows PC 上使用(在网络上)。有人告诉我使用以下程序

nodes <- c(rep("localhost",15),rep("node001",16))
cl <- makeCluster(nodes)
registerDoParallel(cl)

虽然我知道“localhost”是我的主 PC 的默认标识符,但“node001”是我不明白的。如何识别网络上的其他计算机?我尝试了IP地址,但他们无法连接。

4

1 回答 1

0

首先,你的本地机器上是否安装了“ssh”命令,“localhost”和“node001”上是否有“sshd”运行?当尝试在多台 Windows 机器上使用并行包时,这些是最大的问题。在让程序运行之前,您可能需要做一些系统管理工作。

的第一个参数makeCluster应该是一个数字或包含主机名或 IP 地址的字符向量。如果使用字符向量,则这些值将用于构造用于启动集群工作程序的“ssh”命令。如果您指定了错误的主机名,您可能会收到一条错误消息,然后makeCluster会挂起,如下所示:

> library(parallel)
> nodes = c("localhost", "node001")
> makeCluster(nodes)
ssh: Could not resolve hostname node001: Name or service not known
^C
> 

请注意,您不能真正依赖看到错误消息,因为它取决于您的 R 环境。

我建议验证您是否可以使用 Rnsl函数解析“node001”:

> nsl("node001")
NULL
Warning message:
In nsl("node001") : nsl() was unable to resolve host 'node001'

如果这失败了,那么您只需要确定正确的主机名或 IP 地址。如果成功了,那么你需要继续寻找问题的真正原因,不幸的是有很多原因makeCluster可能会挂起。

于 2016-01-15T14:13:33.323 回答