チャンクパーティション分割よりもレンジパーティション分割の方が適切なシナリオはどれですか? (そして万力の詩)
私はすでにそれを知っています
チャンク パーティショニング: 入力からプロセスへの要素の小さなチャンクを取得し、小さなチャンクから始めて、チャンク サイズを増やします。
範囲分割では、各ワーカーに同数の要素を事前に割り当てます
また、このコードの理由: (100000 までの素数の検索)
IEnumerable<int> numbers = Enumerable.Range (3, 100000-3);
var parallelQuery = from n in numbers.AsParallel()
where Enumerable.Range (2, (int) Math.Sqrt (n)).All (i => n % i > 0)
select n;
範囲分割ではパフォーマンスが低下する可能性がありますか?
このコード: (最初の100万個の数字の平方和を求める)
ParallelEnumerable.Range (1, 10000000).Sum (i => Math.Sqrt (i))
範囲パーティショニングで使用するより良い選択はありますか?