8

使用 foreach 包,我预计以下行将在大约 10 秒内运行

system.time(foreach (i=1:5, .combine='c') %do% {Sys.sleep(2);i})
   user  system elapsed 
  0.053   0.011  10.012 

以下行将在大约 2 秒内运行

system.time(foreach (i=1:5, .combine='c') %dopar% {Sys.sleep(2);i})
   user  system elapsed 
  0.069   0.017  10.019 

但它不起作用。

我在 Mac OSX 上,我的机器有 16 个处理器,目前没有任何重物正在运行。我没有收到任何错误或警告消息。

4

1 回答 1

16

您需要注册一个并行后端。做类似的事情

library(doParallel)
registerDoParallel(cores=4)
于 2015-06-07T02:02:33.597 回答