いくつかのタスクを並行して実行するためにいくつかの foreach ワーカーを含む R コードがあります。この目的のために 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 を使用したマルチパラダイム並列処理の例を見ました(https://www.rmetrics.org/files/Meielisalp2009/Presentations/Lewis.pdf#page=17)。しかし、それが私が望んでいることをするかどうかはわかりません。
また、ネストされた foreachは、2 つのループをマージする必要があるため(こちらを参照)適用できないようですが、私の場合はこれは好ましくありません。2 番目のループは、コードの一部について最初のループを助けるだけです。間違っている場合は修正してください。
ありがとう。