并行化R

时间:2017-09-12 19:13:57

标签: r parallel-processing

我想在R中并行化下面的代码。它是一个嵌套的for循环。

for (i in 1:nrow(my_dataset_preprocessed)){
    for (j in 1:ncol(my_dataset_preprocessed)){
      my_dataset_preprocessed[i,j] = min( my_dataset_preprocessed[i,j], 0.1 ) 
    }
}

我正在使用doParallel

尝试以下代码
library(foreach)
library(doParallel)
registerDoParallel(detectCores())
clusterExport(cl, "my_dataset")

threshold_par <- function (X) { 
  co <- foreach(i=1:nrow(X)) %:%
                foreach (j=1:ncol(X)) %dopar% {   
                  co = min( X[i,j], 0.1 )
                }
  matrix(unlist(co), ncol=ncol(X))
}

system.time(threshold_par(my_dataset))

但是我收到以下错误:

  

{:任务1失败 - &#34;无效&#39;类型&#39; (列表)参数&#34;

有没有更好的方法来并行化此代码(可能正在使用parLapply)?如果没有,我该如何修复上述代码?

1 个答案:

答案 0 :(得分:0)

您没有声明Show Raw Keys/Values。如果您删除cl

,则以下情况有效
clusterExport(cl, "my_dataset")