作者forever87062 (刘A.y)
看板DataScience
标题[问题] 无法使用平行运算makeCluster()
时间Fri Apr 26 02:13:04 2019
大家好,我大部分是使用R作统计运算,约有使用两年的经验,想请教有
关无法使用makeCluster()的问题,在之前有在其他电脑使用过程式是没
有问题的,但是这台工作用的windows 10 桌电(去年才买)却无法使用,
有点不知道怎麽解决,想请教大家有没有什麽建议,或有遇过类似事情
的经历
我是执行以下的程式
library(parallel)
myCoreNums <- detectCores()
cl <- makeCluster(myCoreNums -1)
但是我的电脑却执行一整天都还卡在makeCluster()的地方,非常奇怪,
我就手动中断了R,於是我也试过了cl <- makeCluster(2) 但也卡了很
久,觉得不太寻常。後来用这个方式,出现以下的讯息
cl <- future::makeClusterPSOCK(1L, verbose = TRUE, outfile = NULL)
----------以下为error code 的讯息-----------------------
> cl <- future::makeClusterPSOCK(1L, verbose = TRUE, outfile = NULL)
[local output] Workers: [n = 1] ‘localhost’
[local output] Base port: 11234
[local output] Creating node 1 of 1 ...
[local output] - setting up node
Testing if worker's PID can be inferred: ‘C:/PROGRA~1/R/R-35~1.3/
bin/x64/Rscript -e "try(cat(Sys.getpid(),file=\"C:/Users/xxxxx/
AppData/Local/Temp/RtmpsVKdaV/future.parent=20556.504c2b692669.p
id\"), silent = TRUE)" -e "file.exists(\"C:/Users/xxxxx/AppData/
Local/Temp/RtmpsVKdaV/future.parent=20556.504c2b692669.pid\")"’
- Possible to infer worker's PID: FALSE
[local output] Starting worker #1 on ‘localhost’: "C:/PROGRA~1
/R/R-35~1.3/bin/x64/Rscript" --default-packages=datasets,utils,
grDevices,graphics,stats,methods -e "parallel:::.slaveRSOCK()"
MASTER=localhost PORT=11234 OUT= TIMEOUT=2592000 XDR=TRUE
[local output] - Exit code of system() call: 0
[local output] Waiting for worker #1 on ‘localhost’ to connect back
[local output] - Detected 'outfile=NULL' on Windows: this will make
the output from the background worker visible when running R from a
terminal, but it will most likely not be visible when using a GUI.
Error in socketConnection("localhost", port = port, server = TRUE, blocking = TRUE, :
Failed to launch and connect to R worker on local machine ‘localhost’
from local machine ‘DESKTOP-OUUF46V’.
* The error produced by socketConnection() was: ‘reached elapsed time limit’
(which suggests that the connection timeout of 120 seconds
(argument 'connectTimeout') kicked in)
* The localhost socket connection that failed to connect to the R worker used
port 11234 using a communication timeout of 2592000 seconds and a connection timeout
of 120 seconds.
* Worker launch call: "C:/PROGRA~1/R/R-35~1.3/bin/x64/Rscript" --default-
packages=datasets,utils,grDevices,graphics,stats,methods -e "parallel:::.slaveRSOCK()"
MASTER=localhost PORT=11234 OUT= TIMEOUT=2592000 XDR=TRUE.
* Failed to kill local worker because it's PID is could not be identified.
* Troubleshooting suggestions:
- Suggestion #1: On Windows, to see output from worker,
set 'outfile=NULL' and run R from a terminal (not a GUI).
In addition: Warning message:
In system(test_cmd, intern = TRUE, input = input) :
running command 'C:/PROGRA~1/R/R-35~1.3/bin/x64/Rscript -e "try(cat
(Sys.getpid(),file=\"C:/Users/xxxxx/AppData/Local/Temp/RtmpsVKdaV/future.parent=20556
.504c2b692669.pid\"), silent = TRUE)" -e "file.exists(\"C:/Users/xxxxx/AppData/Local
/Temp/RtmpsVKdaV/future.parent=20556.504c2b692669.pid\")"' had status 1
>
------------------------------------------------------------
我也查了一下网路上相关资料,只有一个提到可能是跟防火墙有关,我也曾经关掉防火墙
(
https://support.microsoft.com/zh-tw/help/4028544/windows-10-turn-windows-defender-firewall-on-or-off)
再执行一次,但是也同样不行,有点不是很清楚该怎麽修复这样的情形,
想请教版上的大家有没有什麽方法或建议可以解决了,谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.162.144.7
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DataScience/M.1556215986.A.F08.html
1F:推 st1009: 或许防火墙没关乾净吧,如果在学校公司,也要注意他们的防 04/27 12:43
2F:→ st1009: 火墙 04/27 12:43
3F:推 ruokcnn: 按照他说的trouble shoot走看看 04/27 13:30
4F:→ ruokcnn: 从cmd跑makeCluster 设output = null 04/27 13:30
5F:→ ruokcnn: *outfile=NULL 04/27 13:31