1
我是一個用R並行計算的初學者。我最近開始使用使用doParallel包的foreach和並行計算。當我試圖在將迭代器拆分爲塊時將列表編入索引時,我遇到了一個問題。isplitVector和foreach索引問題
library(itertools)
library(foreach)
library(doParallel)
n=10000
iter = 1:n
cores = detectCores() -1
c = makeCluster(cores)
clusterExport(c,c("mod_function","test_list","cores")
registerDoParallel(c)
output <- foreach(i = isplitVector(iter,chunks = cores)) %dopar%
{
mod_function(test_list[[i]]
}
stopCluster(c)
我得到的錯誤
Error in { : task 1 failed - "recursive indexing failed at level 3
當我不迭代向量分割成塊我沒有得到這個錯誤。我不確定isplitVector返回的是什麼,以及如何爲列表建立索引。這對我的作品
n=10000
iter = 1:n
cores = detectCores() -1
c = makeCluster(cores)
registerDoParallel(c)
output <- foreach(i = (1:n) %dopar%
{
mod_function(test_list[[i]]
}
stopCluster(c)
因爲我有很多的迭代,我想加快我的foreach是塊迭代到集羣的最佳途徑。在這方面的任何幫助將是非常有幫助的。提前致謝。
謝謝伊莫,我已經添加了我使用過的包和我導出的變量。 –