当我尝试parallel
在我的 Mac 上使用 R 中的包时遇到了一些问题。
以下是并行包的正常工作方式。
cl = makeCluster(2) # Using 2-core parallel as an example
# Your parallel code
stopCluster(cl)
当我运行这段代码时,cl = makeCluster(2)
无限挂起。我试图解决它但失败了。我还提到了其他一些帖子。几个潜在的原因包括内存不足、安装错误等。它们似乎不是这里的问题,因为我重新启动了会话,重新安装了 R,但问题仍然存在。
我想问题是关于 R 尝试连接到核心时的权限。这是我发现的。我用future
package查看了连接core的具体过程。附件是代码及其返回。
cl <- future::makeClusterPSOCK(2, verbose = TRUE)
Workers: [n = 2] 'localhost', 'localhost' Base port: 11303 Creating node 1 of 2 ... - 在 'localhost' 上设置节点启动 worker #1: '/Library/Frameworks/R.framework/Resources /bin/Rscript' --default packages=datasets,utils,grDevices,graphics,stats,methods -e 'parallel:::.slaveRSOCK()' MASTER=localhost PORT=11303 OUT=/dev/null TIMEOUT=2592000 XDR= TRUE
等待 'localhost' 上的 worker #1 重新连接
问题是本地主机永远不会连接回来......
以下是我的会话信息。我希望这有帮助。
R 版本 3.5.1 (2018-07-02)。
平台:x86_64-apple-darwin15.6.0(64 位)。
运行于:macOS High Sierra 10.13.6。矩阵产品:默认。
BLAS:/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib。
LAPACK:/Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib语言环境:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8附加的基础包:
[1] stats graphics grDevices utils datasets methods base通过命名空间加载(未附加):
[1] compiler_3.5.1 parallel_3.5.1 tools_3.5.1 listenv_0.7.0 codetools_0.2-15 digest_0.6.16
[7] globals_0.12.2 future_1.9.0
有趣的是,相同的代码可以在我的旧 Mac 机器上运行(相同的操作系统,但硬件较旧)。我不知道这里发生了什么。任何帮助表示赞赏!谢谢!