doMC

RでdoMCを使ったお手軽並列計算から、doMCの使い方。
MacLinuxWindowsで並列計算用Rパッケージが使える、使えない、があるらしい。とりあえず今はMacを使っているのでそこらへんの検証は後回し。

install.packages("doMC")
library(doMC)
#計算コア数ベクトル生成(コア数: 1,2,4,6,8)
n_core <- c(1, seq(2, 8, by=2))
#正規乱数発生数を設定
N <- 10^5
#計算時間の結果を突っ込む空マトリックスの作成
result.mat <- matrix(0, length(n_core), 3)
for(i in 1:length(n_core)){
	registerDoMC(n_core[i])
	result <- system.time(foreach(i = 1:1000, .combine = "cbind") %dopar% {
		sum(rnorm(N))
	})
	core.d <- c(n_core[i], result[3])
	names(core.d) <- c("Cores", "ProcTime")
	print(core.d)
	result.mat[i, ] <- as.numeric(result)[1:3]
}
result.mat
   Cores ProcTime 
   1.000   16.797 
   Cores ProcTime 
   2.000   23.233 
   Cores ProcTime 
   4.000   30.411 
   Cores ProcTime 
   6.000   13.507 
   Cores ProcTime 
   8.000   13.435 

むしろ時間がかかっているが…これも保留。