それで、すべてのCPUコアを使用して、Rでの並列実行にsnowfallパッケージを使用してみました。これは、テストに使用したコードです。
library(snow)
library(snowfall)
sfInit(parallel = TRUE, cpus = 16, type = "SOCK")
data <- array(1:1000000, dim=c(1000000,1))
system.time(x <- sfLapply(data, fun=function(x){return (x*x) }))
利用可能なすべての CPU コアを使用するため、実質的に 16 倍高速に実行されます。しかし、私がこれを試すと:
system.time(m2 <- J48(CHURNED_F~., data = data[, -c(1)]))
テストとして、約 50 秒かかります (データ セット全体の約 1% のみ)。
library(snow)
library(snowfall)
sfInit(parallel = TRUE, cpus = 16, type = "SOCK")
system.time(m2 <- sfLapply("CHURNED_F~.", J48, data[, -c(1)]))
間違った構文を使用しているだけですか? これを並行して実行するにはどうすればよいですか?