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 に答える