我有一個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