Skip to main content
QUICK REVIEW

[論文レビュー] Mesh Algorithms for PDE with Sieve I: Mesh Distribution

Matthew G. Knepley, Dmitry Karpeev|arXiv (Cornell University)|Aug 30, 2009
Computational Geometry and Mesh Generation参考文献 13被引用数 9
ひとこと要約

この論文では、PDEソルバのための分散メッシュ管理に、次元に依存しない、アロー中心のアプローチであるSieveフレームワークを紹介する。インシデント関係(アロー)を第一級のオブジェクトとして扱い、カバー関係と双対性を用いることで、任意の要素タイプ、次元、埋め込みにおいて一様なメッシュ分割、配布、データ処理を可能にし、1つの並列操作であるセクション完了によって、完全なコード再利用と拡張性を達成する。

ABSTRACT

We have developed a new programming framework, called Sieve, to support parallel numerical PDE algorithms operating over distributed meshes. We have also developed a reference implementation of Sieve in C++ as a library of generic algorithms operating on distributed containers conforming to the Sieve interface. Sieve makes instances of the incidence relation, or \emph{arrows}, the conceptual first-class objects represented in the containers. Further, generic algorithms acting on this arrow container are systematically used to provide natural geometric operations on the topology and also, through duality, on the data. Finally, coverings and duality are used to encode not only individual meshes, but all types of hierarchies underlying PDE data structures, including multigrid and mesh partitions. In order to demonstrate the usefulness of the framework, we show how the mesh partition data can be represented and manipulated using the same fundamental mechanisms used to represent meshes. We present the complete description of an algorithm to encode a mesh partition and then distribute a mesh, which is independent of the mesh dimension, element shape, or embedding. Moreover, data associated with the mesh can be similarly distributed with exactly the same algorithm. The use of a high level of abstraction within the Sieve leads to several benefits in terms of code reuse, simplicity, and extensibility. We discuss these benefits and compare our approach to other existing mesh libraries.

研究の動機と目的

  • メッシュ生成ツールとソルバが互換性のない表現を使用するため、PDEソルバにおけるメッシュトポロジーと機能的データ構造との間の乖離を解消すること。
  • メッシュ配布、分割、データ配布を、要素タイプ、次元、埋め込みに依存しない同一の抽象化の下に統合すること。
  • トポロジカル接続性をインシデント関係(アロー)として第一級の概念として扱うことで、次元に依存しないプログラミングを可能にすること。
  • メッシュトポロジーと同じコアメカニズムを用いて、マルチグリッドやメッシュ分割のような階層的データ構造をサポートすること。
  • 低レベルのインデックス操作を高レベルの幾何操作に抽象化することで、コード再利用性、単純性、拡張性を向上させること。

提案手法

  • 幾何的要素(例:頂点、セル)をポイントとして、インシデント関係(例:頂点がエッジ上にある)をアローとして扱い、第一級のオブジェクトとして扱うSieveデータ構造を用いてメッシュトポロジーを表現する。
  • 局所的なトポロジーとプロセス間のオーバーラップをエンコードするためのカバー関係を用い、局所データ収集の連鎖を通じて分散メッシュ構築を可能にする。
  • セクション完了——1つの並列操作——を用いて、メッシュトポロジーと関連データ(例:座標)をプロセス間で一様に配布する。
  • アローに基づくデータ(例:方向性、補間重み)を介して、トポロジカル操作(例:閉包)と解析的操作(例:制限)の間の双対性を活用する。
  • Atlasアダプタを用いて配布時にデータサイズを特定し、スパースまたは空のデータセクション(例:座標のない面)の自動処理を可能にする。
  • 重なり構造を用いてセクション(例:分割、座標)を完了させ、最終的な分散メッシュを構築する。この際、フェース分割ではゴーストセルが自動的に生成される。

実験結果

リサーチクエスチョン

  • RQ1同じアルゴリズムが、要素の形状、次元、埋め込みにかかわらず、常にメッシュを配布可能か?
  • RQ2メッシュ分割とデータ配布が、トポロジーとデータの別々の処理を必要とせずに、同一の抽象化の下に統合可能か?
  • RQ3同じ操作——セクション完了——を用いて、メッシュトポロジーと関連する機能的データの両方を配布可能か?
  • RQ4マルチグリッドやメッシュ分割のような階層的データ構造を、メッシュ自体と同じコアメカニズムでエンコード・操作可能か?
  • RQ5アロー中心のモデルは、従来のメッシュライブラリと比較して、コードの複雑さを低減し、拡張性を向上させるか?

主な発見

  • メッシュ配布アルゴリズムは、Sieveにおけるメッシュ次元、要素形状、埋め込み、中間要素の有無に完全に依存しない。
  • 同じセクション完了操作が、データが頂点、セル、その他の要素に接続されているかどうかにかかわらず、メッシュトポロジーと関連データ(例:座標)の両方を配布する。
  • フェース分割を使用する際、ゴーストセルが自動的に生成される。これは、フレームワークが複雑な通信パターンを自然に処理できることを示している。
  • Sieveフレームワークは、双対性とカバー関係を介して、メッシュ自体と同じ基盤メカニズムを用いてマルチグリッドやメッシュ分割の階層をサポートする。
  • アプローチにより、すべての操作が低レベルのインデックス算術ではなく、高レベルの幾何抽象化によって表現されるため、完全なコード再利用と拡張性が可能になる。
  • 圏論と代数的トポロジーにインspiredされたフレームワークの設計により、明示的な次元パラメータや特別なケースを必要とせず、次元に依存しないプログラミングが可能になる。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。