doMC 的文档似乎非常稀疏,仅列出了 doMC-package 和 registerDoMC()。我遇到的问题是我将通过 doMC/foreach 生成几个工作人员,但是当工作完成后,他们只是坐在那里占用内存。我可以去寻找他们的进程ID,但我经常不小心杀死主进程。
library(doMC)
library(foreach)
registerDoMC(32)
foreach(i=1:32) %dopar% foo()
##kill command here?
我尝试使用 registerDoSEQ() 进行操作,但它似乎并没有杀死进程。
doMC 包基本上是 mclapply 函数的包装器,并且 mclapply 分叉应在返回之前退出的工作程序。它不使用诸如 Snow 包或并行包中的 Snow 派生函数之类的持久工作线程,因此不需要像 stopCluster 这样的函数来关闭工作线程。
直接使用 mclapply 时是否遇到同样的问题?当您使用较小的内核值调用 registerDoMC 时,效果是否会更好?
您是否通过 Mac 上的 RStudio 或 R.app 等 IDE 使用 doMC?如果是这样,您可能想尝试从终端使用 R 看看是否有影响。在 IDE 中调用 fork 可能会出现问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)