実装しているスレッドプールのさまざまなスケジューリングアルゴリズムを調査してきました。私が解決している問題の性質上、並行して実行されているタスクは独立しており、新しいタスクを生成しないと想定できます。タスクのサイズはさまざまです。
私はすぐに、ローカルジョブキューにロックフリーの両端キューを使用する最も一般的なスケジューリングアルゴリズム「ワークスティーリング」に行きました。このアプローチには比較的満足しています。しかし、仕事を盗むことが最善のアプローチではない一般的なケースがあるかどうか疑問に思います。
この特定の問題について、私は個々のタスクのサイズを適切に見積もっています。ワークスティーリングはこの情報を利用しません。この情報を使用したワークスティーリングよりも優れた負荷分散を提供するスケジューラーがあるかどうか疑問に思います(明らかに同じ効率で)。
NB。この質問は前の質問と結びついています。