在 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)
我有一组元素通过 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)