并行化不';我不能使用foreach包

并行化不';我不能使用foreach包,r,foreach,parallel-processing,parallel-foreach,R,Foreach,Parallel Processing,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 下一行将在大约2秒钟内运行 system.time(foreach (i=1:5, .combine='c') %dopar% {Sys.sleep(2);i}) user system elapse

使用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 
但它不起作用


我使用的是MacOSX,我的机器有16个处理器,目前没有任何重型设备在运行。我没有收到任何错误或警告消息。

您需要注册并行后端。做点像

library(doParallel)
registerDoParallel(cores=4)

看来这里没有什么可比的了。您的for循环声明所有五个循环都是连续运行的。我觉得我误解了。我认为使用%dopar%会导致foreach循环中的任何内容对于
I
的每个值并行运行。在第8页的第一段中,您可以阅读:
要使前面的任何示例并行运行,您所要做的就是将%do%替换为%dopar%
。我的错误是什么?您是否收到警告消息:“按顺序执行%dopar%:未注册并行后端”?