我有一个R代码,涉及多个foreach工作人员并行执行一些任务。为此,我正在使用foreach和doMC。我想让每一个这些foreach工作人员招募一些新的工作人员,并将他们可以并行化的部分代码分发给他们。允许每个工作人员注册并将子任务分配给其他工作人员
当前的代码如下所示:
require(doMC)
require(foreach)
registerDoMC(cores = 8)
foreach (i = (1:8)) %dopar% {
<<some code here>>
for (j in c(1:4)) {
<<some other code here>>
}
}
我正在寻找一个理想的代码看起来像:
require(doMC)
require(foreach)
registerDoMC(cores = 8)
foreach (i = (1:8)) %dopar% {
<<some code here>>
foreach (j = (1:4)) %dopar% {
<<some other code here>>
}
}
我看到使用doSNOW和DOMC here (https://www.rmetrics.org/files/Meielisalp2009/Presentations/Lewis.pdf#page=17)多范型并行的例子。但是,我不知道它是否满足我的要求。
另外,它似乎Nested foreach不适用,因为它需要合并两个循环(see here),而在我的情况下这不是优选的;第二个循环只能帮助第一个代码的一部分。如果我错了,请纠正我。
谢谢。
也许不是你想要的,但是你可以嵌套'foreach'表达式:http://cran.r-project.org/web/packages/foreach/vignettes/nested.pdf。但是,我不知道在循环中招募更多的工人。 – ialm
谢谢。但是,它似乎嵌套的foreach不适用于我的情况,因为它需要合并两个嵌套循环,而我需要一个内部循环,只调用一部分代码。我会更新这个问题来反映这一点。 – imriss