我正在尝试将并行计算选项添加到基于doMC和多核的R(netresponse)包中。该脚本可以正常工作,但仅限于第二次试用。
要重现该错误,请启动R并运行下面的脚本。它停留在最后一行。在用ctrl-c中断后,我得到一些“select:Interrupted system call”的消息。然后,再次运行相同的脚本将给出预期的结果没有问题。
是否需要进行一些初始化才能在第一次运行时正常工作?还是其他任何提示?
感谢您的支持, - L
require(netresponse)
require(multicore)
require(doMC)
registerDoMC(3)
print(getDoParWorkers())
res <- foreach(i = 1:100, .combine = cbind,
.packages = "netresponse") %dopar% netresponse::vdp.mixt(matrix(rnorm(1000), 100, 10))
答案 0 :(得分:1)
来自package netsese的帮助页面中的依赖项列表:“取决于:方法,igraph,graph,minet”。我怀疑你没有通过在.packages
论证中列出“netresponse”来将所有这些内容全部交给工人。
答案 1 :(得分:0)
快速修复foreach%dopar%的问题是重新安装这些软件包:
install.packages("doSNOW")
install.packages("doParallel")
install.packages("doMPI")
如StackOverflow中的各种线程所述,它们负责R中的并行性。现在删除了旧版本的这些软件包中存在的Bug。我应该提一下,即使你没有在你的项目/包中使用这些包,它也很有帮助。