MAGRO: 実行時間の比較 [統計]
MAGROはマルチコア対応ということで、WinBUGSおよびJAGSと実行時間を(いいかげんに)測定してみた。
環境: MacBook Pro (Intel Core 2 Duo 2.8GHz), Mac OS X 10.6.2, R 2.10.1 (64bit)
コード
結果
アクティビティモニタをながめていても、MAGROでは2つのコアを目一杯つかっているのがわかる。
[追記]
JAGSがあんまりおそかったので、研究室マシン(Mac OS X 10.6.2, Intel Core 2 Duo 2.4GHz)でやりなおしてみた。
と、JAGSが速くなった(それでもMAGROの方が速いが)。研究室マシンのJAGSはIntel MKLを使うようにしているので、これがきいているのか。家マシンの方は何かまちがえているのか。
[追記 2]
家マシンでも、configureを見直すと大幅に改善された。
環境: MacBook Pro (Intel Core 2 Duo 2.8GHz), Mac OS X 10.6.2, R 2.10.1 (64bit)
コード
library(rmagro) library(R2WinBUGS) library(rjags) setwd("~/Documents/RData/bugs-examples/vol1/blocker") source("blocker-data.R") source("blocker-init.R") data <- list(rt = rt, nt = nt, rc = rc, nc = nc, Num = Num) inits <- list(d = d, tau = tau, mu = mu, delta = delta) parms <- c("d", "delta.new", "sigma") ## MAGRO magro.test <- function(n.chains = 3, n.iter = 33000, n.burnin = 3000, n.thin = 10) { magro.samples("blocker.bug", monitor = parms, n.iter = n.iter, n.burnin = n.burnin, thin = n.thin, n.chain = n.chains, list.data = data, inits = inits, mt = 1) } ## WinBUGS WINE <- "/Applications/Darwine/Wine.bundle/Contents/bin/wine" WINEPATH <- "/Applications/Darwine/Wine.bundle/Contents/bin/winepath" winbugs.test <- function(n.chains = 3, n.iter = 33000, n.burnin = 3000, n.thin = 10) { bugs(data, list(inits, inits, inits), parms, "blocker.bug", n.chains = n.chains, n.iter = n.iter, n.burnin = n.burnin, n.thin = n.thin, bugs.directory = paste(Sys.getenv("HOME"), ".wine/drive_c/Program Files/WinBUGS14", sep="/"), working.directory = NULL, clearWD = TRUE, useWINE=TRUE, newWINE = TRUE, WINE = WINE, WINEPATH = WINEPATH, debug = FALSE) } ## JAGS jags.test <- function(n.chains = 3, n.iter = 33000, n.burnin = 3000, n.thin = 10) { model <- jags.model("blocker.bug", data, inits = list(inits, inits, inits), n.chains = n.chains, n.adapt = n.burnin) jags.samples(model, parms, n.iter = n.iter - n.burnin, thin = n.thin) } ## Test n.chains <- 3 n.burnin <- 3000 n.iter <- 100000 + n.burnin n.thin <- 10 system.time(magro.test(n.chains, n.iter, n.burnin, n.thin)) system.time(winbugs.test(n.chains, n.iter, n.burnin, n.thin)) system.time(jags.test(n.chains, n.iter, n.burnin, n.thin))
結果
ユーザ | システム | 経過 | |
---|---|---|---|
MAGRO | 84.418 | 83.803 | 44.675 |
WinBUGS | 81.587 | 80.835 | 83.963 |
JAGS | 231.794 | 0.305 | 231.396 |
アクティビティモニタをながめていても、MAGROでは2つのコアを目一杯つかっているのがわかる。
[追記]
JAGSがあんまりおそかったので、研究室マシン(Mac OS X 10.6.2, Intel Core 2 Duo 2.4GHz)でやりなおしてみた。
ユーザ | システム | 経過 | |
---|---|---|---|
MAGRO | 98.698 | 97.879 | 52.633 |
WinBUGS | 96.781 | 95.783 | 99.855 |
JAGS | 76.705 | 0.195 | 76.541 |
と、JAGSが速くなった(それでもMAGROの方が速いが)。研究室マシンのJAGSはIntel MKLを使うようにしているので、これがきいているのか。家マシンの方は何かまちがえているのか。
[追記 2]
家マシンでも、configureを見直すと大幅に改善された。
コメント 0