[論文レビュー] Efficient Resource Oblivious Algorithms for Multicores
本稿では、false sharingおよびブロックミスが発生しても最適なキャッシュ性能を達成できるリソースに依存しないスケジューラー、Priority Work Stealing (PWS) を提案する。階層的バランス型並列(HBP)アルゴリズムを設計し、ブロック共有を制限し、ギャップ法および限定的ライトアクセス技術を用いることで、PWSはキャッシュサイズやブロックサイズの知識がなくても、シーケンシャルな複雑度と一致するキャッシュミスの上限を保証する。
We consider the design of efficient algorithms for a multicore computing environment with a global shared memory and p cores, each having a cache of size M, and with data organized in blocks of size B. We characterize the class of `Hierarchical Balanced Parallel (HBP)' multithreaded computations for multicores. HBP computations are similar to the hierarchical divide & conquer algorithms considered in recent work, but have some additional features that guarantee good performance even when accounting for the cache misses due to false sharing. Most of our HBP algorithms are derived from known cache-oblivious algorithms with high parallelism, however we incorporate new techniques that reduce the effect of false-sharing. Our approach to addressing false sharing costs (or more generally, block misses) is to ensure that any task that can be stolen shares O(1) blocks with other tasks. We use a gapping technique for computations that have larger than O(1) block sharing. We also incorporate the property of limited access writes analyzed in a companion paper, and we bound the cost of accessing shared blocks on the execution stacks of tasks. We present the Priority Work Stealing (PWS) scheduler, and we establish that, given a sufficiently `tall' cache, PWS deterministically schedules several highly parallel HBP algorithms, including those for scans, matrix computations and FFT, with cache misses bounded by the sequential complexity, when accounting for both traditional cache misses and for false sharing. We also present a list ranking algorithm with almost optimal bounds. PWS schedules without using cache or block size information, and uses knowledge of processors only to the extent of determining the available locations from which tasks may be stolen; thus it schedules resource-obliviously.
研究の動機と目的
- キャッシュミスやfalse sharingが発生しても良好に動作する、効率的でリソースに依存しないマルチスレッドアルゴリズムを、マルチコアシステム向けに設計すること。
- 特にfalse sharingに起因する共有メモリアクセスによるブロックミスが引き起こす性能低下を解消すること。
- キャッシュサイズ、ブロックサイズ、プロセッサ数の知識が不要であるが、最適な性能を達成できるスケジューラを開発すること。
- キャッシュに依存しないアルゴリズム設計を、並列処理および共有メモリ競合、特にfalse sharingを含めた文脈に拡張すること。
- ブロックミスが発生しても、HBPアルゴリズムがシーケンシャルな複雑度と一致する上限を持つスケジューリングが可能であることを示すこと。
提案手法
- ブロック共有が制限される構造的性質を持つ、マルチスレッドアルゴリズムのクラスとして、階層的バランス型並列(HBP)計算を導入する。
- O(1)を超えるブロック共有を伴う計算において、ブロックミスのオーバーヘッドを低減するため、ギャップ法を適用する。
- タスク実行中の共有ブロックアクセスのコストを制限するため、限定的アクセスライトのセマンティクスを組み込む。
- キャッシュサイズやブロックサイズの情報が不要であるが、HBPアルゴリズムを決定的にスケジューリングできるPriority Work Stealing (PWS) スケジューラを設計する。
- 少なくともp個のタスクが生成される最初のレベルまで再帰的タスク分解を展開する戦略を用い、効率的なキャッシュ利用を実現する。
- タスク実行スタック上の共有ブロックアクセスコストを束縛することで、共有メモリ競合下でも性能の安定性を確保する。
実験結果
リサーチクエスチョン
- RQ1false sharingおよびブロックミスが存在するマルチコアシステムにおいて、リソースに依存しないスケジューリングが最適なキャッシュ性能を達成できるか?
- RQ2HBPアルゴリズムは、いかに構造的にブロック共有を最小限に抑え、false sharingに起因する遅延を低減できるか?
- RQ3キャッシュサイズ、ブロックサイズ、プロセッサ数の知識がなくても最適な性能を達成できるスケジューラ設計は何か?
- RQ4既知のキャッシュに依存しないアルゴリズムの性能は、共有メモリ競合を伴う並列実行下でも保持可能か?
- RQ5タスクが盗まれたり、共有ブロックがアクセスされたりする状況でも、ブロックミスの上限が保証されるアルゴリズム設計の構造的性質は何か?
主な発見
- PWSスケジューラは、false sharingやブロックミスを考慮しても、HBPアルゴリズムのシーケンシャルな複雑度と一致するキャッシュミスの上限を達成する。
- スキャン、行列乗算、FFTを含むHBPアルゴリズムが、PWS下で最適な性能でスケジューリング可能であることが示された。
- ギャップ法は、高頻度のブロック共有を伴うアルゴリズムにおいて、ブロックミスのオーバーヘッドを効果的に低減し、並列効率を向上させる。
- 限定的アクセスライトの使用により、共有ブロックアクセスのコストが制限され、性能の著しい低下を防げる。
- フレームワークはマルチレベルキャッシュ階層をサポートし、キャッシュがコア間で分割されている場合でも最適な性能を実現可能である。
- スケジューラがキャッシュパラメータを知る必要がなく、階層的マルチコアシステムにおける共有キャッシュの最適利用が可能である。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。