[論文レビュー] A thread-parallel algorithm for anisotropic mesh adaptation
本稿では、OpenMPを用いたスレッド並列アルゴリズムを提示し、タスクカラーリングと遅延更新を活用することで、マルチコアシステムにおけるスケーラブルなイントラノード並列処理を実現する異方性メッシュ適応法を提案する。8コアでは60%の並列効率を達成し、16コアのccNUMAシステムでは40%を記録しており、メッシュ適応処理における複雑なデータ依存関係や負荷の不均衡にもかかわらず、実用的なスケーラビリティを示している。
Anisotropic mesh adaptation is a powerful way to directly minimise the computational cost of mesh based simulation. It is particularly important for multi-scale problems where the required number of floating-point operations can be reduced by orders of magnitude relative to more traditional static mesh approaches. Increasingly, finite element and finite volume codes are being optimised for modern multi-core architectures. Typically, decomposition methods implemented through the Message Passing Interface (MPI) are applied for inter-node parallelisation, while a threaded programming model, such as OpenMP, is used for intra-node parallelisation. Inter-node parallelism for mesh adaptivity has been successfully implemented by a number of groups. However, thread-level parallelism is significantly more challenging because the underlying data structures are extensively modified during mesh adaptation and a greater degree of parallelism must be realised. In this paper we describe a new thread-parallel algorithm for anisotropic mesh adaptation algorithms. For each of the mesh optimisation phases (refinement, coarsening, swapping and smoothing) we describe how independent sets of tasks are defined. We show how a deferred updates strategy can be used to update the mesh data structures in parallel and without data contention. We show that despite the complex nature of mesh adaptation and inherent load imbalances in the mesh adaptivity, a parallel efficiency of 60% is achieved on an 8 core Intel Xeon Sandybridge, and a 40% parallel efficiency is achieved using 16 cores in a 2 socket Intel Xeon Sandybridge ccNUMA system.
研究の動機と目的
- 動的データ構造と高い負荷不均衡が生じるため、異方性メッシュ適応におけるスレーブレベルの並列処理を効率的に行う課題に対処すること。
- 有限要素法および有限体積法のシミュレーションに適した、現代のマルチコアアーキテクチャにおけるスケーラブルなイントラノード並列処理を可能にすること。
- メッシュの整合性を保ちながら、メッシュの細分化、粗化、スワップ、スムージングの各フェーズでデータ競合を回避するスレッド並列アルゴリズムの開発。
- 共有メモリシステムにおけるコア数の変動やNUMAトポロジーの違いを考慮した、提案手法の性能とスケーラビリティの評価。
提案手法
- アルゴリズムは、メッシュ操作(細分化、粗化、スワップ、スムージング)の最大独立集合を特定するためにグラフカラーリングを用い、並列実行を可能にする。
- 遅延更新戦略を採用し、メッシュの変更をワークリストに集約して並列処理後に一括で適用することで、シリアル化とデータ競合を最小限に抑える。
- 各メッシュ適応フェーズはOpenMPを用いて並列化され、色クラスに基づくタスクスケジューリングによりデータ独立性を確保する。
- 独立セットを並列処理することで動的負荷バランスを実現し、同期オーバーヘッドを低減する。
- アルゴリズムは2次元非構造メッシュを対象として実装され、適応をガイドするためのメトリックベースの誤差推定器を用いる。
- スレッド-コアアフィニティを用いてメモリアクセスパターンを最適化し、マルチソケットシステムにおけるNUMA効果を低減する。
実験結果
リサーチクエスチョン
- RQ1複雑なデータ依存関係と不規則なワークロードがあるにもかかわらず、OpenMPのようなスレッドベースのモデルを用いて異方性メッシュ適応を効果的に並列化できるか?
- RQ2共有メモリ環境におけるメッシュ更新時、データ競合とシリアル化オーバーヘッドをどのように最小限に抑えることができるか?
- RQ3タスクカラーリングは、マルチコアシステムにおけるメッシュ適応処理のための十分な並列性をどのように引き出すか?
- RQ4非一様メモリアクセスを示すccNUMAアーキテクチャにおいて、コア数の増加に伴う性能のスケーリングはどの程度か?
- RQ5メッシュ品質や整合性を損なわずに、遅延更新がメッシュ適応におけるスケーラビリティをどの程度向上できるか?
主な発見
- 8コアのIntel Xeon Sandybridgeシステムでは60%の並列効率を達成し、メッシュ適応フェーズにおける強いスケーラビリティを示した。
- 16コアのccNUMAシステムでは並列効率が40%に低下したが、主にNUMA効果と同期オーバーヘッドの増加によるものであった。
- 不規則的かつ動的なメッシュ適応の性質にもかかわらず、カラーリングによる独立タスクセットの活用により、効果的な負荷分散と高い並列性が実現された。
- データ書き込みが少ないメッシュスムージングでさえ良好なスケーリングを示しており、計算負荷が小さい操作に対しても本手法の有効性が確認された。
- 要素品質のヒストグラムによると、2600万要素中10要素のみが0.4未満の品質を示し、最悪でも0.34であった。これにより、適応後のメッシュ品質が非常に高いことが確認された。
- 遅延更新とワークリストベースの同期により、メッシュの整合性が保たれ、データ競合が回避された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。