我在具有 8 个处理器的 WinXP64 计算机上运行 R 2.11 64 位。在 R 2.10.1 中,以下代码生成了 6 个 R 进程以进行并行处理:
require(foreach)
require(doSNOW)
cl = makeCluster(6, type='SOCK')
registerDoSNOW(cl)
bl2 = foreach(i=icount(length(unqmrno))) %dopar% {
(Some code here)
}
stopCluster(cl)
当我在 R 2.11 Win64 中运行相同的代码时,6 个 R 进程没有生成,并且代码挂起。我想知道这是否是 SNOW 移植到 2.11-64 位的问题,或者我是否需要任何额外的代码。谢谢
顺便说一句,这在我家里运行 Ubuntu Karmic 64 位和 R 2.11 的多核机器上运行得很好。不幸的是我工作中必须使用 Win64
该代码似乎在这里工作。
R version 2.11.0 (2010-04-22)
x86_64-pc-mingw32
other attached packages:
[1] doSNOW_1.0.3 snow_0.3-3 foreach_1.3.0 codetools_0.2-2
[5] iterators_1.0.3
loaded via a namespace (and not attached):
[1] tools_2.11.0
检查你的 sessionInfo() 以确保你的版本与我的版本匹配。我注意到的一件事是,在我的 Windows 7 计算机上,第一次尝试 makeCluster 会请求防火墙例外。如果您没有明确考虑套接字通信,这可能就是它挂起的原因。在私有配置文件下运行时,它打开的默认端口(虽然丑陋)是所有 TCP 和 UDP 端口。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)