在R中使用预处理函数进行并行处理不起作用

在R中使用预处理函数进行并行处理不起作用,r,parallel-processing,R,Parallel Processing,我有一个巨大的代码,里面有for loop,需要几个小时才能运行,最后我的电脑就死机了。为了改进代码,我使用了foreach以及并行处理来减少运行时间。我的代码如下: library(doParallel) cores=detectCores() cl <- makeCluster(cores[1]-1) registerDoParallel(cl) foreach (i=1:3)%dopar%{ {some R code with i index} preProc <- preP

我有一个巨大的代码,里面有
for loop
,需要几个小时才能运行,最后我的电脑就死机了。为了改进代码,我使用了
foreach
以及并行处理来减少运行时间。我的代码如下:

library(doParallel)
cores=detectCores()
cl <- makeCluster(cores[1]-1) 
registerDoParallel(cl)
foreach (i=1:3)%dopar%{
{some R code with i index}
preProc <- preProcess(method="bagImpute", train[, 1:lengthvar])
train[, 1:lengthvar] <- predict(preProc, train[, 1:lengthvar])
test[, 1:lengthvar] <- predict(preProc, test[, 1:lengthvar])
}   
stopCluster(cl)
库(双并行)
核心=检测核心()

cl您需要在
foreach
函数中添加
.packages

    library(doParallel)
    cores=detectCores()
    cl <- makeCluster(cores[1]-1) 
    registerDoParallel(cl)

    foreach (i=1:3,.packages("caret"))%dopar%{
    {some R code with i index}
    preProc <- preProcess(method="bagImpute", train[, 1:lengthvar])
    train[, 1:lengthvar] <- predict(preProc, train[, 1:lengthvar])
    test[, 1:lengthvar] <- predict(preProc, test[, 1:lengthvar])
    }   
    stopCluster(cl)
库(双并行)
核心=检测核心()
氯