foreach dopar比Windows上的foreach慢

时间:2019-11-29 21:15:41

标签: r foreach doparallel

我是foreach的新手,正在尝试进行并行计算。我的Windows 8.1笔记本电脑有4个核心。以下代码显示%dopar%%do%慢。但为什么?我在这里想念什么?

可复制的示例

library(doParallel)
#> Loading required package: foreach
#> Warning: package 'foreach' was built under R version 3.6.1
#> Loading required package: iterators
#> Loading required package: parallel
library(microbenchmark)
#> Warning: package 'microbenchmark' was built under R version 3.6.1

#find number of cores
parallel::detectCores()
#> [1] 4

no_cores <- detectCores() - 1  
cl <- makeCluster(no_cores)  
registerDoParallel(cl)

microbenchmark(x = foreach(i=1:10) %do% (i+1),
               y = foreach(i=1:10) %dopar% (i+1))
#> Unit: milliseconds
#>  expr       min        lq     mean   median       uq       max neval
#>     x  8.393377  9.389422 12.89608 12.60476 15.14176  32.61851   100
#>     y 14.840381 16.625099 21.05566 18.30625 23.38002 109.54543   100

## go back to sequential calculations
stopCluster(cl) 
registerDoSEQ()

0 个答案:

没有答案