在 R 中进行并行计算时,如何将元素分配给 foreach() 中的簇

how are elements assigned to clusters in foreach() when doing parallel computing in R

我有一组元素通过 R 中的用户定义函数 运行。这些元素按顺序 运行 需要很长时间。然后我使用 foreach()%dopar%makecluster()registerdoparallel() 切换到并行计算。我想知道这些元素是如何分布到集群中的。假设我有 100 个元素并注册 5 个簇,元素 1~20 被分配到簇 1,依此类推,或者它们是随机分配的。谢谢

先到先得:

library(doParallel)
registerDoParallel(cl <- makeCluster(3))

foreach(i = 1:20, .combine = 'c') %dopar% {
  Sys.getpid()
}
[1] 13004  5924  6600 13004  5924 13004  6600  5924 13004  5924 13004  5924 13004
[14]  5924  6600 13004  5924  6600 13004  5924

stopCluster(cl)