আপডেট: ক্যারেটটি এখন foreachঅভ্যন্তরীণভাবে ব্যবহার করে, সুতরাং এই প্রশ্নটি এখন আর প্রাসঙ্গিক নয়। আপনি যদি কোনও কাজের সমান্তরাল ব্যাকএন্ডের জন্য নিবন্ধন করতে পারেন তবে foreachক্যারেট এটি ব্যবহার করবে।
আমার কাছে আর এর জন্য ক্যারেট প্যাকেজ রয়েছে এবং আমি trainআমার মডেলগুলি ক্রস-বৈধ করতে ফাংশনটি ব্যবহার করতে আগ্রহী । তবে আমি জিনিসগুলিকে দ্রুত করতে চাই এবং মনে হয় ক্যারেট সমান্তরাল প্রক্রিয়াকরণের জন্য সমর্থন সরবরাহ করে। উইন্ডোজ মেশিনে এই বৈশিষ্ট্যটি অ্যাক্সেস করার সর্বোত্তম উপায় কী? আমার কাছে ডসএমপি প্যাকেজ রয়েছে, তবে কীভাবে foreachফাংশনটিকে কোনও lapplyফাংশনে অনুবাদ করতে হবে তা আমি বুঝতে পারি না, তাই আমি এটি trainফাংশনে পাস করতে পারি ।
এখানে trainডকুমেন্টেশন থেকে আমি কী করতে চাই তার একটি উদাহরণ এখানে দেওয়া হয়েছে : doSMPপ্যাকেজটির পরিবর্তে প্যাকেজটি ব্যবহার না করে আমি এটি করতে চাই doMPI।
## 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)
এখানে এমবিকিউ-র ফাংশনের একটি সংস্করণ রয়েছে যা ল্যাপ্লি ডকুমেন্টেশনের মতো একই চলক নামগুলি ব্যবহার করে:
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)