R 中的 sfInit() 降雪包在 Windows 7 上挂起

Posted

技术标签:

【中文标题】R 中的 sfInit() 降雪包在 Windows 7 上挂起【英文标题】:sfInit() snowfall package in R hangs on Windows 7 【发布时间】:2015-08-29 01:32:17 【问题描述】:

我一直在尝试遵循一些指南,以便在运行 Windows 7 的工作机器上使用我的所有 (4) 个处理器。它们都建议使用 snowfall() 包。但是,当我运行以下代码时,R 会一直运行,直到我终止它。换句话说,R 挂起。

sfInit(parallel = TRUE, cpus = 4)

结果相同

sfInit(parallel = TRUE, cpus = 2)

再用

sfInit(parallel = TRUE)

为了好奇,我的 Sys.info()

                 sysname                      release                      version                     nodename 
               "Windows"                          "7" "build 7601, Service Pack 1"                 "<REDACTED>" 
                 machine                        login                         user               effective_user 
                   "x86"                  "<REDACTED>"                  "<REDACTED>"                  "<REDACTED>" 

还有……

sessionInfo()
R version 3.2.0 (2015-04-16)
Platform: i386-w64-mingw32/i386 (32-bit)
Running under: Windows 7 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] parallel  stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] actuar_1.1-8       fitdistrplus_1.0-4 MASS_7.3-40        doParallel_1.0.8   doSNOW_1.0.12     
[6] iterators_1.0.7    foreach_1.4.2      snowfall_1.84-6    snow_0.3-13       

loaded via a namespace (and not attached):
[1] compiler_3.2.0   tools_3.2.0      survival_2.38-1  splines_3.2.0    codetools_0.2-11

【问题讨论】:

2011 年左右有一些帖子存在类似问题,随后声称该问题已在稍后的降雪版本中得到解决... 你的sessionInfo()是什么? 与 Sys.info() 有什么不同?将在星期一发布 是的。如果你运行它,你会看到它。 好的,我已经编辑包含 sessionInfo() 【参考方案1】:

虽然不直接使用降雪,但我可以通过运行以下命令来达到我想要的结果

library(doParallel)
win7 <- makeCluster(4) 
registerDoParallel(win7)
#... rest of code to run in parallel ...
#... using doParallel specific syntax 

【讨论】:

以上是关于R 中的 sfInit() 降雪包在 Windows 7 上挂起的主要内容,如果未能解决你的问题,请参考以下文章

使用降雪包并行化 R 代码

在 R 中使用降雪包做一些模拟

用降雪 R 初始化 MPI 集群

使用 sf Library 将库加载到降雪集群时抑制启动消息

运行 R 脚本后无法杀死工人

如何使用 sfInit 和 makeCluster 类型“MPI”/R 中的消息传递/集群上的并行化