我正在使用 R 并行包在我的笔记本电脑上进行并行计算:
> library(parallel)
> x = matrix(rep(1,2000), nrow=2)
> cl <- makeCluster(getOption("cl.cores", 8))
> system.time(replicate(5000, parApply(cl, x, 1, paste, collapse="-")))
user system elapsed
7.950 0.966 13.562
> stopCluster(cl)
> system.time(replicate(5000, apply(x, 1, paste, collapse="-")))
user system elapsed
8.357 0.001 8.355
我在这里犯了什么错误吗?我唯一不太确定的是如何使用makeCluster
.
更新:为了减少并行化的开销成本,使用更大的矩阵x
并删除replicate
并在基准测试尽管如此,并行和串行之间的差异仍然很小,有时并行速度较慢。