[論文レビュー] Fully Read/Write Fence-Free Work-Stealing with Multiplicity
本稿では、多重性(multiplicity)を許容する完全にリード/ライトフェンスフリーなワーク・スティーリングアルゴリズムの初の実装を提示する。多重性とは、複数の操作が同じタスクを抽出可能であるが、各プロセスが同じタスクを最大でも一度しか取り出さないことを保証する緩和化の仕組みである。提案されたアルゴリズムは、すべての操作においてリード・アフター・ライトの同期パターンおよびリード/ライトフェンスを完全に排除し、ウェイトフリー性と対数的または定数ステップ複雑性を達成している。実験結果では、Cilk、Chase-Lev、およびイデムポテンツ・ワーク・スティーリングよりも優れた性能を示している。
Work-stealing is a popular technique to implement dynamic load balancing in a distributed manner. In this approach, each process owns a set of tasks that have to be executed. The owner of the set can put tasks in it and can take tasks from it to execute them. When a process runs out of tasks, instead of being idle, it becomes a thief to steal tasks from a victim. Thus, a work-stealing algorithm provides three high-level operations: Put and Take, which can be invoked only by the owner, and Steal, which can be invoked by a thief. One of the main targets when designing work-stealing algorithms is to make Put and Take as simple and efficient as possible. Unfortunately, it has been shown that any work-stealing algorithm in the standard asynchronous model must use expensive Read- After-Write synchronization patterns or atomic Read-Modify-Write instructions, which may be costly in practice. Thus, prior research has proposed idempotent work-stealing, a relaxation for which there are algorithms with Put and Take devoid of Read-Modify-Write atomic instructions and Read-After-Write synchronization patterns; however, Put uses fences among Write instructions, and Steal uses Compare&Swap and fences among Read instructions. In the TSO model, in which Write (resp. Read) instructions cannot be reordered, there have been proposed fully fence-free work-stealing algorithms whose Put and Take have similar properties but Steal uses Compare&Swap or a lock.
研究の動機と目的
- 従来のワーク・スティーリングアルゴリズムにおけるリード・アフター・ライト同期とアトミックなリード・モディファイ・ライト命令の性能ボトルネックを解消すること。
- タスクの複数回抽出を許容するが、各プロセスが同じタスクを最大でも一度しか取り出さないことを保証する緩和されたワーク・スティーリングモデルを設計すること。
- 標準的な非同期共有メモリモデル下で、完全にリード/ライトフェンスフリーかつウェイトフリーなワーク・スティーリングアルゴリズムを達成すること。
- 単純な同期プリミティブが、スパニングツリー計算のような非自明な協調制御を実現するために十分であることを示すこと。
- 提案されたアルゴリズムの性能を、Cilk、Chase-Lev、およびイデムポテンツ・ワーク・スティーリングといった既存のソリューションと比較して評価すること。
提案手法
- 多重性と弱多重性(weak multiplicity)の2つの緩和化を導入し、1つのタスクに対して複数回のTake/Steal操作を許容するが、各プロセスが1回までに制限する。
- 多重性を伴うワーク・スティーリング問題を、MaxRegisterの緩和版であるMaxRegisterおよびRangeMaxRegisterデータ構造に還元する。
- ワーク・キューの先頭管理にMaxRegisterを用いた、ウェイトフリーかつフェンスフリーな弱多重性用アルゴリズムを設計する。
- 対数的ステップ複雑性を達成する多重性用の2番目のアルゴリズムを、RangeMaxRegister抽象化を用いて実装する。
- すべてのPut、Take、Steal操作が、フェンスやアトミックなリード・モディファイ・ライト操作を一切使用せずに、単なるリード/ライト命令のみで実行されることを保証する。
- TSOに類似した環境におけるリオーダー順序の問題を回避するため、バウンデッドバッファモデルを採用し、フェンスフリー実行を可能にする。
実験結果
リサーチクエスチョン
- RQ1すべての操作(Stealを含む)において、リード・アフター・ライトパターンやフェンスを完全に排除したフェンスフリーなワーク・スティーリングが可能か?
- RQ2タスクの多重性を許容する緩和された意味論下で、ウェイトフリーなワーク・スティーリングアルゴリズムを設計することは可能か?
- RQ3MaxRegisterおよびRangeMaxRegister抽象化を用いて、効率的かつフェンスフリーな多重性付きワーク・スティーリングを実装できるか?
- RQ4提案されたアルゴリズムは、Cilk、Chase-Lev、およびイデムポテンツ・ワーク・スティーリングといった既存のアルゴリズムを実際の性能面で上回るか?
- RQ5多重性の緩和が、正しさと性能を保ちつつ、同期の単純化を可能にするか?
主な発見
- WS-WMULTアルゴリズムは、Intel Core i7およびXeonクラスタの両方で、Cilk、Chase-Lev、およびイデムポテンツ・ワーク・スティーリングよりも優れた性能を達成している。
- 有向3次元トーラスでは、Chase-Levに対して最大36.61%のスループット向上、イデムポテンツFIFOに対して8.65%、イデムポテンツLIFOに対して19.6%の向上を達成した。
- 無向3次元トーラスでは、Chase-Levに対して最大12.25%の向上、イデムポテンツFIFOに対して5.95%、イデムポテンツFIFOに対して0.78%の向上を達成した。
- StealでSwapを使用するバウンデッド版B-WS-WMULTは、WS-WMULTより性能が低かったが、他のアルゴリズムと比較して依然として競争力を持っていた。
- 弱多重性用のアルゴリズムは、定数ステップ複雑性を有する完全なフェンスフリー性を達成しており、文献上では初めてのソリューションである。
- 理論的解析により、多重性付きワーク・スティーリングがコンSENSUSナンバー階層の最も低いレベルに位置することを確認した。これは、最小限の同期パワーで十分であることを示している。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。