1

Concurrency Runtimeに関する記事を読んでいますがwork stealing、この記事に名前が付けられているアルゴリズムがあります。しかし、私はこのアルゴリズムが何であるかわかりません!ですから、このアルゴリズムについてのプレゼンテーションを行うのに役立つ、少しの説明またはいくつかの良いリンクが必要です。

4

4 に答える 4

14

これらのどれかが役に立ちましたか?

.NET4.0でのワークスティーリング

ワークスティーリングによるマルチスレッド計算のスケジューリング

于 2012-01-31T14:47:13.310 に答える
9

私は最近、Java Fork /JoinフレームワークとWorkStealingAlgroithmsについて説明しているその論文を読みました。

その論文から、私たちはこれから始めます:

Result solve(Problem problem) {
    if (problem is small)
       directly solve problem
    else {
       split problem into independent parts
       fork new subtasks to solve each part
       join all subtasks
       compose result from subresults
    }
}

これらのフォークされたサブタスク(elseブロックの2行目)は、それ自体でより多くのサブタスクを再帰的に作成できるため、並列作業スレッドの作業キューをいっぱいにすることができます。1つのスレッドが終了し、それ以上何もすることがない場合、彼は別のスレッドのキューから作業を「盗む」ことができます。

要するに、すべての詳細については、論文を調べることをお勧めします。

于 2012-01-31T14:55:36.323 に答える
5

次のChannel9ビデオで見つけることができるWorkStealingアルゴリズムの非常に素晴らしくて理解しやすい説明: 「ParallelExtensions:Inside the Task Parallel Going Deep」Duffy、Huseyin Yildiz、Daan Leijen、Stephen Toub00:44:00 、 (Daanによる)を参照してください。Leijen

于 2012-03-11T15:42:55.277 に答える
1

タスクスケジューラ用のIntelTBBアルゴリズムを見ることができます。これは、ワークスティーリングパターンを使用しています。https://software.intel.com/fr-fr/node/468190を参照してください

于 2014-09-11T12:44:55.653 に答える