AMReX: パフォーマンス
ロブ・ファーバー著
2023 年 8 月 21 日
パフォーマンス、移植性、幅広い機能はすべて、AMReX ソフトウェア フレームワークの重要な機能です。AMReX ソフトウェア フレームワークは、米国エネルギー省の一部として、ローレンス バークレー国立研究所 (バークレー研究所)、国立再生可能エネルギー研究所、およびアルゴンヌ国立研究所の研究者によって開発されました。 (DOE)エクサスケール コンピューティング プロジェクト(ECP) AMReX 共同デザインセンター。
ECP AMReX Co-Design Center は、大規模並列ブロック構造のアダプティブ メッシュ リファインメント (AMR) アプリケーション用のこの人気があり頻繁に使用されているソフトウェア フレームワークが DOE スーパーコンピューター上で効率的に実行できることを保証します。 数多くの ECP アプリケーションが AMReX を利用して、加速器設計、天体物理学、燃焼、宇宙論、混相流、風力エネルギーなど、幅広いさまざまなアプリケーションをモデル化しています。
このような広範な物理現象に対処するには、ソフトウェアが広範なアルゴリズム要件をサポートする必要があります。 「エクサスケール コンピューティング プロジェクトのアプリケーション コードで使用されるソフトウェア実装の調査」で述べたように、AMReX は API を通じてこのプラットフォームの移植性を実現しています。 Center for Efficient Exascale Discretizations (CEED) や Co-design Center for Particle Application などの他の ECP 共同設計センターも、これと同じアプローチを利用してパフォーマンスの移植性を実現しています。
CPU からヘテロジニアス アーキテクチャへ
AMReX はもともと、AMR アプリケーションの開発に使用されていた以前の BoxLib フレームワークに基づいていました。 AMReX 共同設計センターの主任研究員であり、バークレー研究所の応用数学および計算研究部門の上級研究員である John Bell (図 2) は次のように説明しました。 AMReX は、マルチコア CPU と多数の異なる GPU アクセラレータの両方をサポートする、パフォーマンスを移植できるフレームワークを提供します。 AMReX は現在、さまざまなシステム上のさまざまなアプリケーションで使用されています。」
すでに BoxLib に基づいていたアプリケーション コードについて、AMReX チームはコードを BoxLib から AMReX に移行する方法を文書化しました。 (このドキュメントは、Docs/Migration の AMReX リポジトリで入手できます)
GPU アクセラレーションと並んで、ベル氏は次のように述べています。「AMReX の主要な設計機能の 1 つは、基本的なデータ構造とそのデータ構造に対するコア操作を、特定のアプリケーションで使用されるアルゴリズムから分離し、開発者がより柔軟に操作できるようにすることです。彼らの問題を解決してください。」
技術紹介
科学者は、偏微分方程式 (PDE) 系を解くための「数値顕微鏡」としてブロック構造 AMR を使用しています。 AMReX は、GPU アクセラレーションの有無にかかわらず、ラップトップからエクサスケール アーキテクチャに至るまでのマシンを対象として、これらのシステムを解決するためのアルゴリズムを開発するためのフレームワークを提供します。
科学者は、システムを記述するさまざまな量の導関数間の関係である偏微分方程式を使用して、幅広い物理現象を記述します。 山脈を流れる風、地震時の橋の振動、超新星内部の燃焼はすべて偏微分方程式で記述されます。 PDE を解くことで、科学者は複雑なシステムの動作について洞察を得ることができます。 ただし、ほとんどの場合、偏微分方程式系に対する簡単な数学的解決策は存在しません。
代わりに、コンピューターを使用して解決する必要があります。 コンピューター上で偏微分方程式を解く上で中心となるのは、科学者がシステムをどのように表現するかです。 一般的なアプローチの 1 つは、点の有限メッシュ上の値によってシステムの状態を定義することです。 このタイプのメッシュベースのアプローチでは、メッシュが細かくなるほど (つまり、メッシュに含まれるポイントが多くなるほど)、ソリューションの表現がより適切になります。 AMR アルゴリズムは、メッシュ ポイントの数と位置を動的に制御して、十分な精度で問題を解決しながら計算コストを最小限に抑えます。
「AMReX: マルチフィジックス アプリケーションのためのブロック構造適応メッシュ改良」で述べたように、ブロック構造 AMR アルゴリズムは、複数の解像度レベルでのソリューションの階層表現を利用します (図 1)。 各レベルで、ソリューションはその解像度でのデータ コンテナの結合で定義され、それぞれがドメインの論理的に長方形のサブ領域にわたるソリューションを表します。
