[論文レビュー] Scaling through abstractions -- high-performance vectorial wave simulations for seismic inversion with Devito
本論文では、記号的PDE式から自動的に最適化された有限差分ステンシルを生成することで、地震波反転のための高パフォーマンスでスケーラブルなベクトル波シミュレーションを可能にするドメイン固有言語およびコンパイラ、Devitoを提示する。クラウドHPC環境における産業規模の3次元モデルで28 TFLOP/sの性能を達成し、手書きコードのカーネルと同等の性能を示した一方で、高レベルの抽象化により弾性およびTTI波方程式のような複雑な物理現象をサポートしている。
[Devito] is an open-source Python project based on domain-specific language and compiler technology. Driven by the requirements of rapid HPC applications development in exploration seismology, the language and compiler have evolved significantly since inception. Sophisticated boundary conditions, tensor contractions, sparse operations and features such as staggered grids and sub-domains are all supported; operators of essentially arbitrary complexity can be generated. To accommodate this flexibility whilst ensuring performance, data dependency analysis is utilized to schedule loops and detect computational-properties such as parallelism. In this article, the generation and simulation of MPI-parallel propagators (along with their adjoints) for the pseudo-acoustic wave-equation in tilted transverse isotropic media and the elastic wave-equation are presented. Simulations are carried out on industry scale synthetic models in a HPC Cloud system and reach a performance of 28TFLOP/s, hence demonstrating Devito's suitability for production-grade seismic inversion problems.
研究の動機と目的
- 自動コード生成を用いて、地震波反転のための高パフォーマンスでスケーラブルな波シミュレーションを実現すること。
- 高レベルの記号的インターフェースを通じて、弾性およびねじれ対称性(TTI)媒質のような複雑な波動物理学をサポートすること。
- 手書き最適化カーネルと同等のパフォーマンスを達成しながら、オンプレミスおよびクラウドHPCシステム間でのポータビリティを維持すること。
- Devitoの記号的DSLおよびコンパイラスタックを用いて、大規模でMPI並列処理が可能なアドジョイントベースの反転ワークフローの実現可能性を示すこと。
提案手法
- Devitoは、SymPyに基づく記号的ドメイン固有言語(DSL)を用い、波方程式やテンソル積などのPDEを数学的に整合性のある形で表現する。
- Devitoコンパイラは、データ依存関係解析を実行し、ループスケジューリングと並列性の検出を実施し、実行時における高度に最適化されたCコードを生成する。
- 本システムは、ベクトル場およびテンソル場のためのステアガードグリッド有限差分法をサポートしており、弾性およびTTI波方程式の正確なシミュレーションを可能にしている。
- 分散メモリ並列処理はドメイン分割とMPIをネイティブにサポートしており、大規模な3次元モデルへのスケーリングを可能としている。
- フレームワークは、スパース演算を介した自動的ソース注入および受信点サンプリングを統合しており、フルウェーブフォームインバージョンに不可欠である。
- 性能はルーフラインモデリングおよび最先端の手書きカーネル(fdelmodc)との直接比較により検証され、低レベルの効率性が保証されている。
実験結果
リサーチクエスチョン
- RQ1高レベルの記号的DSLは、地震波反転における生産用途向けの手書き最適化波動伝搬カーネルと同等のパフォーマンスを達成できるか?
- RQ2記号的PDEから自動的に生成されたコードは、弾性およびTTI異方性のような複雑な波動物理学をどの程度サポートできるか?
- RQ3Devitoは、大規模な3次元地震モデルおよび反転処理において、分散メモリHPCシステムでどの程度スケーリングするか?
- RQ4記号的抽象化と高パフォーマンスコンパイルの組み合わせは、クラウドベースのHPC環境において生産用途のFWIワークフローを可能にするか?
主な発見
- Devitoは、クラウドHPC環境における3次元弾性波シミュレーションでピーク28 TFLOP/sの性能を達成し、生産規模の地震波反転に適した状態であることを示した。
- Devitoが生成したカーネルの性能は、最先端の手書き伝搬カーネル(fdelmodc)と1%以内の差にとどまり、低レベルの効率性が確認された。
- 2次元ケースでは完全に最適化されていなかったにもかかわらず、Devitoの弾性カーネルの単一ノード性能は、手書き実装と同等であった。
- 32ノード(16コアIntel Xeon)で3次元弾性モデルに対するスケーリングに成功し、16秒間のシミュレーションを16時間で完了し、1.1 TFLOP/sの性能を達成した。
- 本フレームワークは、スカラ場と同一の高レベルAPIを用いて、ベクトル場およびテンソル場のステアガードグリッド有限差分法を完全にサポートしている。
- 結果から外挙することで、5000ソースの弾性データセットを計算するには322 EFLOPsの計算量が必要となることが示され、大規模でスケーラブルな自動化ソリューション(Devitoなど)の必要性が浮き彫りになった。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。