42 lines
1.1 KiB
Plaintext
42 lines
1.1 KiB
Plaintext
|
## not necessarily reproducible examples.
|
||
|
|
||
|
library(parallel)
|
||
|
|
||
|
|
||
|
cl <- makeCluster(getOption("cl.cores", 2))
|
||
|
|
||
|
clusterApply(cl, 1:2, get("+"), 3)
|
||
|
xx <- 1
|
||
|
clusterExport(cl, "xx")
|
||
|
clusterCall(cl, function(y) xx + y, 2)
|
||
|
|
||
|
## Use clusterMap like an mapply example
|
||
|
clusterMap(cl, function(x,y) seq_len(x) + y,
|
||
|
c(a = 1, b = 2, c = 3), c(A = 10, B = 0, C = -10))
|
||
|
|
||
|
|
||
|
parSapply(cl, 1:20, get("+"), 3)
|
||
|
|
||
|
## PR14898
|
||
|
parSapply(cl, 1, identity)
|
||
|
|
||
|
if(require(boot, quietly = TRUE)) {
|
||
|
set.seed(11)
|
||
|
## A bootstrapping example, which can be done in many ways:
|
||
|
clusterEvalQ(cl, {
|
||
|
## set up each worker. Could also use clusterExport()
|
||
|
library(boot)
|
||
|
cd4.rg <- function(data, mle) MASS::mvrnorm(nrow(data), mle$m, mle$v)
|
||
|
cd4.mle <- list(m = colMeans(cd4), v = var(cd4))
|
||
|
NULL
|
||
|
})
|
||
|
res <- clusterEvalQ(cl, boot(cd4, corr, R = 100,
|
||
|
sim = "parametric", ran.gen = cd4.rg, mle = cd4.mle))
|
||
|
cd4.boot <- do.call(c, res)
|
||
|
print(boot.ci(cd4.boot, type = c("norm", "basic", "perc"),
|
||
|
conf = 0.9, h = atanh, hinv = tanh))
|
||
|
}
|
||
|
stopCluster(cl)
|
||
|
|
||
|
|