私はmatlabで長時間実行しているparforループで作業しています。Matlab並列コンピューティングツールボックス、パーフォルループでの作業の動的割り当て
parfor iter=1:1000
chunk_of_work(iter);
end
実行ごとに約2〜3のタイミング異常値が一般的にあります。すなわち、実行される作業の1000チャンクごとに、残りの約100倍の時間がかかる2-3があります。ループが完了すると、外れ値を評価した作業者は引き続き実行され、残りの作業者は計算負荷がありません。
これは、静的に仕事を分配するparforループと一致しています。これは、並列コンピューティングツールボックスfound hereのドキュメントとは対照的である:。
「ワーク分布は動的である代わりに、固定 反復範囲を割り当てられるが、労働者は彼らの処理を完了のみ 後に新しい反復を割り当てられています現在の反復では、作業負荷分散の場合でも になります。
何が起こっているかについてのアイデアはありますか?