Windows上的多台计算机makePSOCKcluster:构建分步指南

Ben*_*min 12 parallel-processing ssh putty r

我一直在尝试使用多台计算机构建一个集群三天,并且失败了.所以现在我要试着吮吸一大堆你为我解决问题.如果一切顺利的话,我希望我们能够生成一个循序渐进的指南,以便将来作为参考来使用,因为到目前为止,我还没有找到一个合适的参考来设置它(也许这太具体了?)

在我的例子中,让我们假设Windows 7,PuTTY作为SSH客户端,'localhost'将作为主服务器.

此外,我们现在假设同一网络上只有两台计算机.我想这个过程很容易概括,如果我可以让它在两台计算机上运行,​​我可以让它在三台计算机上工作.因此,我们会努力的localhostremote-computer.

这是我到目前为止收集的内容(底部有引用链接)

  1. 安装PuTTY localhost.
  2. 安装PuTTY remote-computer
  3. 安装SSH服务器 remote-computer
  4. 为它分配一个端口来监听?(我不确定这一步)
  5. 安装R on localhost
  6. 安装相同版本的R on remote-computer
  7. R添加到PATH环境变量上都localhostremote-computer
  8. 运行下面的R代码 localhost

码:

library(parallel)
cl <- makePSOCKcluster(c(rep("localhost", 2),
                         rep("remote-computer", 2)))
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经完成了步骤1-3,不确定我是否需要执行4,完成5-7,而步骤8的代码只是无限期挂起.

当我检查我的SSH服务器日志时,似乎我没有点击SSH服务器localhost.所以看来我的第一个问题是正确配置SSH.有没有人成功做到这一点,你愿意分享你的专业知识吗?

编辑哎呀:参考 http://www.milanor.net/blog/wp-content/uploads/2013/10/03.FirstStepinParallelComputing.pdf

R并行 - 连接到远程核心

https://stat.ethz.ch/pipermail/r-sig-hpc/2010-October/000780.html

Ben*_*min 4

充其量,这只是部分答案。我还没有建立集群,但这里描述的步骤很好地记录了我是如何达到这一点的。

配置:

  1. 在“远程计算机”上安装 PuTTY
  2. 在“远程计算机”上安装 SSH 服务器
  3. 在“远程计算机”上安装 R(使用与“本地主机”上相同版本的 R)
  4. 将 R 添加到路径

  5. 在“localhost”上安装 PuTTY

  6. 在“本地主机”上安装 R
  7. 将 R 添加到路径

测试连接:第一阶段

  1. 从命令行运行

C:\PuTTYPath\plink.exe -pw [password] [username]@[remote_ip_address] Rscript -e rnorm(100)

(确认返回 100 个正态随机变量

  1. 从命令行运行

C:\PuTTYPath\plink.exe -pw [password] [username]@[remoate_ip_address] RScript -e parallel:::.slaveRSOCK() MASTER=[local_ip_address] PORT=100501 OUT=/dev/null TIMEOUT=2592000 METHODS=TRUE XDR=TRUE

(确认在“远程计算机”上的 SSH 服务器日志上启动了会话)

测试连接:第二阶段

  1. 从 R 会话中,运行

    system(paste0("C:/PuTTYPath/plink.exe -pw [password] ", "[username]@[remote_ip_address] ", "RScript -e rnorm(100)"))

    (确认返回 100 个正态随机变量)

  2. 从 R 会话中,运行

    system(paste0("C:/PuTTY/plink.exe ", "-pw [password] ", "[username]@[remote_ip_address] ", "RScript -e parallel:::.slaveRSOCK() ", "MASTER=[local_ip_address] ", "PORT=100501 ", "OUT=/dev/null ", "TIMEOUT=2592000 ", "METHODS=TRUE ", "XDR=TRUE"))

(确认会话已在“远程计算机”上的 SSH 服务器日志上启动并维护

建立集群

  1. 从 R 会话中,运行

    library(snow) cl <- makeCluster(spec = c("localhost", "[remote_ip_address]"), rshcmd = "C:/PuTTY/plink.exe -pw [password]", host = "[local_ip_address]")

(应在“远程计算机”上的 SSH 服务器日志上启动并维护会话。理想情况下,该功能将在分配“cl”时完成)

建立集群是我失败的地方。我运行makeCluster并观察我的 SSH 服务器日志。它显示连接已建立,然后立即关闭。makeCluster永远不会完成运行,cl没有被分配,我被困在如何继续。我什至不确定这是 R 问题还是配置问题。

编辑和解决:

出于没有充分的理由,我尝试使用该snow包运行它,如上面的“建立集群”部分所示。当我使用该snow包时,集群已构建并稳定运行。不知道为什么我不能让它与parallel包一起工作,但至少我有一些功能。