%dopar% の小さなテストを実行しようとしていますが、結果は常に遅くなります.. ダミーのコードと出力を次に示します。これをwin7x64コアi7-2600kで実行しています...
library(foreach)
library(doSNOW)
registerDoSNOW(makeCluster(3, type = "SOCK"))
N <- 3*(10^4)
system.time(foreach(i = 1:N) %do% {sum(rnorm(N))})
system.time(foreach(i = 1:N) %dopar% {sum(rnorm(N))} )
出力は次のとおりです。
> system.time(foreach(i = 1:N) %do% {sum(rnorm(N))})
user system elapsed
90.39 0.00 90.42
> system.time(foreach(i = 1:N) %dopar% {sum(rnorm(N))} )
user system elapsed
17.00 0.89 177.11