次の PLINQ 実装の並列マップ関数を使用します。
let parmap f (xs:list<_>) = xs.AsParallel().Select(fun x -> f x) |> Seq.toList
2 コアを超えることができない 4 コアでスピードアップを改善したいと考えています。並列パフォーマンスを改善するためにカスタム パーティショニングを実行できることがわかりました。しかし、私は主に C# の例を見てきましたが、F# で動作させる方法がわかりません。以下は何も変更しませんが、TPL で使用されるデフォルトのパーティション分割だと思いますか? ここで、さまざまな (静的、動的など) パーティション分割オプションを使用するにはどうすればよいですか?
let pmap_plinqlst_parts f (xs:list<_>) =
let parts = Partitioner.Create(xs)
parts.AsParallel().Select(fun x -> f x) |> Seq.toList