GÜNCELLEME: şapka artık foreach
dahili olarak kullanıldığından, bu soru artık gerçekten alakalı değildir. İçin çalışan bir paralel arka uç kaydedebilirseniz foreach
, caret bunu kullanır.
R için düzeltme paketi var ve train
modellerimi çapraz doğrulamak için işlevi kullanmakta ilginçim. Ancak, işleri hızlandırmak istiyorum ve görünüşe göre, caret paralel işleme için destek sağlıyor. Bir Windows makinesinde bu özelliğe erişmenin en iyi yolu nedir? Ben doSMP paketi, ama çevirmek için nasıl bilemiyorum foreach
bir içine fonksiyonu lapply
ben bunu geçebilir, böylece fonksiyonu train
işlevi.
train
Belgelerden ne yapmak istediğime bir örnek : İşte tam olarak bunu yapmak istiyorum, ancak doSMP
paket yerine doMPI
paketi kullanmak.
## A function to emulate lapply in parallel
mpiCalcs <- function(X, FUN, ...)
}
theDots <- list(...)
parLapply(theDots$cl, X, FUN)
{
library(snow)
cl <- makeCluster(5, "MPI")
## 50 bootstrap models distributed across 5 workers
mpiControl <- trainControl(workers = 5,
number = 50,
computeFunction = mpiCalcs,
computeArgs = list(cl = cl))
set.seed(1)
usingMPI <- train(medv ~ .,
data = BostonHousing,
"glmboost",
trControl = mpiControl)
İşte mbq işlevinin lapply belgeleriyle aynı değişken adlarını kullanan bir sürümü:
felapply <- function(X, FUN, ...) {
foreach(i=X) %dopar% {
FUN(i, ...)
}
}
x <- felapply(seq(1,10), sqrt)
y <- lapply(seq(1,10), sqrt)
all.equal(x,y)