我已经通读了这个 SO 问题和答案(R 并行计算和僵尸进程),但它似乎并没有完全解决我的情况。
我有一台运行 Mac OS X 10.10.3、R 3.2.0 和 RStudio 0.99.441 的 4 核 MacBook Pro。
昨天,我正在试用“foreach”和“doParallel”包(我想在我正在处理的包中使用它们)。我这样做了:
cl <- makeCluster(14)
registerDoParallel(cl)
a <- 0
ls <- foreach(icount(100)) %dopar% {
b <- a + 1
}
我很清楚,在我的 4 核机器上拥有 14 个进程没有意义,但该软件实际上将在 16 核机器上运行。这时我的电脑停了下来。我打开活动监视器,发现 16 个(或更多,也许?)R 进程。我试图强迫他们从活动监视器中退出——没有运气。我关闭了 RStudio,这杀死了所有的 R 进程。我重新打开了 RStudio 并重新启动了所有 R 进程。我重新启动计算机并重新启动 RStudio,然后重新启动所有 R 进程。
如何在不重新启动所有这些进程的情况下启动 RStudio?
编辑:我忘了提到我还重建了我当时正在处理的包(所有进程可能在构建期间一直在运行)
EDIT2:另外,我不能 StopCluster(cl) 因为 cl 不再在环境中......我关闭了那个 R 会话。
EDIT3:当我打开 R.app(R 随附的 R GUI)或在终端中打开 R 时,不会出现此类问题。所以我认为它必须与RStudio相关。
EDIT4:打开 RStudio 和开始所有这些不需要的进程之间似乎存在随机延迟。在 15 秒到 2 分钟之间。
EDIT5:似乎这些过程只有在我打开它们开始的项目后才开始。
EDIT6:我一直在挑选 .Rproj.user 文件寻找要删除的东西。我删除了 ctx、pcs 和 sdb 中的所有文件(但没有删除目录)。问题仍然存在。
EDIT7:当我在命令行运行“killall R”时,它会杀死所有这些进程,但是当我重新启动 RStudio 并重新打开项目时,所有进程都会重新启动。
EDIT8:我使用“killall -s R | wc -l”发现R进程的数量在项目打开时不断增长。它升至 358,然后我运行“killall R”,因为我的计算机发出可怕的声音。
EDIT9:RStudio 目前完全无法使用。每次我“killall R”时,它都会在 15 秒内重新启动所有进程。
EDIT10:当我启动一个也启动大量 R 进程的构建时——最后一次检查为 109。当构建显示“为延迟加载准备包”时,这些过程都会启动。在这一点上,计算机几乎停止运行。
EDIT11:我删除了 .Rproj 文件(实际上只是将其作为备份移动)和 .Rproj.user 目录。我在 RStudio 中使用了“从目录创建项目”。当我打开那个新项目时,我仍然得到相同的行为。当我打开一个不包含在 .Rproj 文件或 .Rproj.user 目录中的任何地方的项目时,RStudio 会做什么!?我花了一整天的时间来解决这个问题....:(