DoMC を使用して並列 foreach ループを構築しようとしていますが、奇妙な動作がいくつか発生しています。コードは次のようになります
for (file in files) {
do stuff
for (extra in extras) {
do some heavy stuff
}
}
- DoMC または DoParallel をロードすると、ループは 1 つのコアを使用し始めますが、2 番目のループでは 4 つのコアすべてを使用します
- for ループを foreach %do% に切り替えると、まったく同じ動作が得られます。
- 外側のループに foreach を使用し、内側を for ループのままにすると、スクリプトが遅くなります。4 ジョブ並列で開始し、すべて停止し、徐々に CPU 使用率が減少します。
私が望むのは、内側の秒ではなく、上のループを並列化することです。誰が何が起こっているのか知っていますか?過去に foreach と doMC を使用したことがありますが、これまでこの問題が発生したことはありません。