F# で Task Parallel Library (TPL) を使用して、多くの (>1000) 実行時間の長いタスクを実行したいと考えています。これが私の現在のコードです:
Parallel.For(1, numberOfSets, fun j ->
//Long running task here
)
これを開始すると、.NET がすべてのタスクを一度に開始し、それらの間を常にバウンスしているように見えます。次のタスクに移る前に、タスクが完了するまでタスクにとどまるとよいでしょう。これにより、コンテキストの切り替えが最小限に抑えられます。
スケジューラにヒントを提供する方法はありますか? ヒントを提供できることはわかっていますが、明確な例が見つからないか、スケジューラがすでにこれについてスマートであり、コンテキストの切り替えが多すぎるというのは私の認識です。助けてくれてありがとう!