R不再并行运行

时间:2013-05-28 10:37:09

标签: r parallel-processing blas domc

我运行(k)Ubuntu 12.04.2和R 3.0.1

我写了一堆曾经并行运行的代码,但现在它已经不再存在了。甚至不再是并行运行:

library(doMC)
registerDoMC(4)
Results = foreach (i = 1:1e6, .combine = "c") %dopar% {
  sqrt(i)
}

这绝对应该。我认为打破了它是R 3.0.1更新或我安装的-dev, -devel BLAS包。 (我觉得openBLAS)

我按照其他地方的建议尝试了system(sprintf("taskset -p 0xffffffff %d", Sys.getpid())),并得到了这个结果:

pid 2415's current affinity mask: 1
pid 2415's new affinity mask: f

我也尝试过用R运行:

taskset 0xffff R

然而,在执行这些循环之后,仍然只使用一个核心。

我想要并行处理!我怎么能得到它?

1 个答案:

答案 0 :(得分:2)

我找到了解决方案!具有讽刺意味的是,为了得到并行处理,我必须同时执行我在Q 中提到的两个步骤

所以,用

开始R.
taskset 0xffff R

然后运行

system(sprintf("taskset -p 0xffffffff %d", Sys.getpid()))

在R.内。

Voila,并行处理返回