使用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个处理器,目前没有运行任何重型程序。我没有收到任何错误或警告消息。
%dopar%
会导致foreach
循环内的任何内容在每个i
值上并行运行。在第8页的第一段中,可以读到:“要使先前的任何示例并行运行,您只需将%do%
替换为%dopar%
”。我的错误在哪里? - Remi.b