【问题标题】:Long R system call hangs长 R 系统调用挂起
【发布时间】:2016-02-24 16:22:55
【问题描述】:

我将非常感谢以下方面的帮助:

我只是在 foreach 中并行运行来自 R 的独立应用程序的 3 个实例。请看下面的模拟代码:

require("foreach")
require("doMC")

registerDoMC(cores=3)
foreach(sample=1:9) %dopar%{
        system2(command="app", args=c("some","args"), 
                stdout = NULL, stderr = NULL) 
}

不管我用systemsystem2,在任务管理器里我都能看到:

  1. rsession(父)
  2. 3x rsessions(来自 foreach)
  3. 3x 应用(进程)

问题是:parent 使用大量 CPU 并不断消耗 RAM,直到我陷入交换状态。这发生在任何appforeach 中的任意数量的线程以及基本上来自 R 的任何系统调用(运行时间超过一些可忽略的时间)都会挂起并且永远不会返回。

我的机器有 Debian Jessie 和 R 3.2.3。

提前谢谢你!

【问题讨论】:

    标签: r


    【解决方案1】:

    好的,我找到了导致问题的原因:RStudio。 rsession 父对象可能正在扫描文件更改并在某处停止直到进程完成。从控制台运行 R 不会出现这样的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-03
      • 1970-01-01
      • 2013-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多