Ben*_*min 12 parallel-processing ssh putty r
我一直在尝试使用多台计算机构建一个集群三天,并且失败了.所以现在我要试着吮吸一大堆你为我解决问题.如果一切顺利的话,我希望我们能够生成一个循序渐进的指南,以便将来作为参考来使用,因为到目前为止,我还没有找到一个合适的参考来设置它(也许这太具体了?)
在我的例子中,让我们假设Windows 7,PuTTY作为SSH客户端,'localhost'将作为主服务器.
此外,我们现在假设同一网络上只有两台计算机.我想这个过程很容易概括,如果我可以让它在两台计算机上运行,我可以让它在三台计算机上工作.因此,我们会努力的localhost和remote-computer.
这是我到目前为止收集的内容(底部有引用链接)
localhost.remote-computerremote-computerlocalhostremote-computerlocalhost和remote-computerlocalhost码:
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
https://stat.ethz.ch/pipermail/r-sig-hpc/2010-October/000780.html
充其量,这只是部分答案。我还没有建立集群,但这里描述的步骤很好地记录了我是如何达到这一点的。
将 R 添加到路径
在“localhost”上安装 PuTTY
C:\PuTTYPath\plink.exe -pw [password] [username]@[remote_ip_address] Rscript -e rnorm(100)
(确认返回 100 个正态随机变量
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 服务器日志上启动了会话)
从 R 会话中,运行
system(paste0("C:/PuTTYPath/plink.exe -pw [password] ",
"[username]@[remote_ip_address] ",
"RScript -e rnorm(100)"))
(确认返回 100 个正态随机变量)
从 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 服务器日志上启动并维护
从 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包一起工作,但至少我有一些功能。