如何在使用doParallel时识别网络计算机

时间:2016-01-15 01:21:15

标签: r windows cluster-computing doparallel

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

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

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

1 个答案:

答案 0 :(得分:0)

首先,是&#34; ssh&#34;命令安装在本地计算机上,并且有一个&#34; sshd&#34;在&#34; localhost&#34;上运行和&#34; node001&#34;?尝试在多台Windows计算机上使用并行程序包时,这些是最大的问题。在您开始运行程序之前,您可能需要进行一些系统管理工作。

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

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

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

我建议验证您是否可以解决&#34; node001&#34;使用R nsl函数:

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

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