ラップトップで並列計算を行うために 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
それでも、パラレルとシリアルの違いはごくわずかであり、パラレルの方が遅い場合もあります。