300億円欲しい

メジャーリーグのデータ解析します

Rで作ったsnowクラスタの操作

このブログが凄い

http://d.hatena.ne.jp/MikuHatsune/

並列計算のコードを拝借します. すみません.

clusterCallを使いたい. 高水準関数を使わずに並列計算します.

結論から言うと, 面倒なのでもうやりたくないです.

snowクラスタを作って操作するのは難しいです.

parSapplyとかforeachとかでいいです.

fn <- function(){
  N <- 300
  res <- numeric(N)
  for(trial in 1:N){
    a1 <- sample(c(7, -1), size=trial, prob=c(1/6, 5/6), replace=TRUE)
    res[trial] <- sum(a1) >= 0
  }
  return(res)
}
library(snow)
cl <- makeCluster(4, type = "SOCK")
clusterExport(cl, "fn")

# 苦肉の策にも程がある

x <- matrix(0, 1200, 2500)
system.time(for(i in 1:(10000/4)) x[,i] <- unlist(clusterCall(cl, fn)))

#matrixをunlistするとかもう

#system.time(parSapply(cl, 1:10000, function(x){fn()}))
tmp0 <- unlist(x)
tmp <- matrix(tmp0, 300,10000)

res <- rowMeans(tmp)
plot(res, type="l")
abline(h=0.95, lty=2, col="red")
head(which(res > 0.5), n=1) #答え
sort(res)