[論文レビュー] Thread Parallelism for Highly Irregular Computation in Anisotropic Mesh Adaptation
本稿では、作業リストベースのグラフ変更操作を用いて、非常に不規則な異方性メッシュ適応に対してスレッド並列処理を行うアルゴリズムを提示する。本手法は、共有メモリシステムにおける複雑なデータ依存関係を安全かつスケーラブルに管理するため、ラウンドベースの独立集合処理、延期更新、アトミックな作業リスト作成、およびワークスティーリングを組み合わせることで、Intel Xeon Sandy Bridgeで60%、AMD Opteron Magny-Coursで50%の並列効率を達成した。
Thread-level parallelism in irregular applications with mutable data dependencies presents challenges because the underlying data is extensively modified during execution of the algorithm and a high degree of parallelism must be realized while keeping the code race-free. In this article we describe a methodology for exploiting thread parallelism for a class of graph-mutating worklist algorithms, which guarantees safe parallel execution via processing in rounds of independent sets and using a deferred update strategy to commit changes in the underlying data structures. Scalability is assisted by atomic fetch-and-add operations to create worklists and work-stealing to balance the shared-memory workload. This work is motivated by mesh adaptation algorithms, for which we show a parallel efficiency of 60% and 50% on Intel(R) Xeon(R) Sandy Bridge and AMD Opteron(tm) Magny-Cours systems, respectively, using these techniques.
研究の動機と目的
- 可変なデータ依存関係を有する非常に不規則なメッシュ適応アルゴリズムにおけるスケーラブルなスレッドレベル並列処理を可能にすること。
- 動的トポロジー変更と複雑なデータアクセスパターンを伴うグラフ変更作業リストアルゴリズムを安全に並列化する課題に対処すること。
- 有限要素法シミュレーションにおける、現代の共有メモリマルチコアアーキテクチャ(例:Intel Xeon、AMD Opteron)における性能とスケーラビリティを向上させること。
- 不規則なワークロードとNUMA効果が存在する中でも実用的な並列効率を実現する手法を開発すること。
- 実世界の適応型FEM/FVMシミュレーションへの応用を想定し、オープンソースのPRAgMaTIcフレームワークに本手法を統合すること。
提案手法
- データ競合の回避を保証するため、グラフ彩色を用いて独立集合のラウンドごとにメッシュ適応操作を処理する。
- 各ラウンドの終了後にのみデータ構造への変更をコミットする延期更新戦略を採用し、並列実行中の競合を回避する。
- コンcurrentな実行における競合を最小限に抑えるために、作業リストの安全な並列構築にアトミックなfetch-and-add操作を用いる。
- スレッド間の負荷分散を図るために、ワークスティーリングによるロードバランシングを適用する。
- OpenMPを用いて共有メモリ並列フレームワークに統合し、現代のマルチコアおよびマルチコアシステムに最適化する。
- 動的メッシュトポロジー変更(例:エッジスワップ、細分化、収縮)をサポートしながら、スレッドセーフでスケーラブルな動作を維持する。
実験結果
リサーチクエスチョン
- RQ1可変なデータ依存関係を有する不規則なメッシュ適応アルゴリズムに、効果的かつ安全にスレッドレベル並列処理を適用できるか?
- RQ2複雑で動的なデータアクセスパターンとトポロジー変更が存在する中で、高い並列効率をどのように達成できるか?
- RQ3どのようなアルゴリズム的技術の組み合わせが、現代のマルチコア共有メモリシステムにおけるスケーラブルなパフォーマンスを実現できるか?
- RQ4ワークスティーリングと延期更新を組み合わせることで、不規則なグラフ変更作業リストにおけるロードバランシングとデータ競合をどの程度軽減できるか?
- RQ5実世界のベンチマークにおいて、複数ソケットおよびNUMAアーキテクチャ上で、この手法はどの程度スケーリングするか?
主な発見
- 提案手法は、40の論理コアを備えたデュアルソケットIntel Xeon Sandy Bridgeシステムで60%の並列効率を達成した。
- クアッドソケットAMD Opteron Magny-Coursシステムでは50%の並列効率を達成し、異なるアーキテクチャ間で高い耐障害性を示した。
- スムージング処理は計算強度が高いため、最も良好にスケーリングされ、クアッドソケット構成でも50%を超える効率を達成した。
- ソケット数の増加に伴いNUMA効果が顕著になるが、本フレームワークはこの課題に対しても良好なパフォーマンスを維持した。
- グラフ彩色、延期更新、アトミック操作、およびワークスティーリングの組み合わせにより、不規則なメッシュ適応ワークロードの安全かつスケーラブルな実行が可能になった。
- 本手法はオープンソースのPRAgMaTIcフレームワークに成功裏に統合され、マルチスケール特徴やショックフロントを有する2次元および3次元の合成ベンチマークで検証された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。