并行化不适用于foreach包

Rem*_*i.b 3 parallel-processing foreach r parallel-foreach

使用foreach包,我期待以下行在大约10秒内运行

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

并且以下行在大约2秒内运行

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

但它不起作用.

我在Mac OSX上,我的机器有16个处理器,目前没有任何重量.我没有收到任何错误或警告信息.

use*_*834 6

您需要注册并行后端.做点什么

library(doParallel)
registerDoParallel(cores=4)
Run Code Online (Sandbox Code Playgroud)