如题,我在Linux的服务器上安装完成了Rstudio server,通过Windows端可以正常使用。
但是最近想用到并行计算提高效率,发现加载parallel包后,使用makeCluster()函数总是不能构建并行节点。
library(parallel)
cl=makePSOCKcluster(c('node1','node2'))
就会卡死在这里。然后添加参数outfile = 'log.txt'
cl=makeluster(c('node1','node2'),outfile='log.txt')
在log.txt文件中显示这样的错误:
starting worker for localhost:11278
Error in socketConnection(master, port = port, blocking = TRUE, open = "a+b") :
无法打开链结
Calls: local ... doTryCatch -> recvData -> makeSOCKmaster -> socketConnection
此外: Warning message:
In socketConnection(master, port = port, blocking = TRUE, open = "a+b") :
localhost:11278 cannot be opened
停止执行
在stackoverflow上也搜了好多类似问题,可是唯一有突破就是通过手动执行参数manual = T
cl=makePSOCKcluster(c('node1','node2'),manual=T,outfile='log.txt')
然后在Rstudio的Console窗口会出现:
Manually start worker on localhoset with
'/usr/lib64/R/bin/Rscript' --default-packages=datasets,utils,grDevices,graphics,stats,methods -e 'parallel:::.slaveRSOCK()' MASTER=fanfeng.hades PORT=11985 OUT=log.txt TIMEOUT=2592000 XDR=TRUE
通过SecureCRT连接到Linux服务器上,将上述内容复制到Linux提示符中执行后,就可以在先前的Rstudio中完成makePSOCKcluster。
但是这样一样,如果想构造10个线程,就要通过SecureCRT连接到Linux服务器10次,感觉很不方便。
请问怎样设置可以像在Windows上那样简便地使用parallel包。
谢谢各位。