本研究は、アプリケーション開発者の視点で、GPU/CPUスパコン上で高精度が必要な領域をより高精細な格子で計算できる高生産フレームワークを開発することを目的とする。 本年度は、単一GPU用の局所的に高精細に計算できる適合細分化格子法(AMR法)に対応したフレームワークを構築した。前年度に開発した単一のステンシル計算のソースコードをGPUとCPUで高速に実行できるフレームワーク技術の中から生産性の高いデータ構造などを抽出し、これまでに開発を進めたGPU上でAMR法用のデータを効率的に柔軟に管理するデータ構造と統合した。このデータ構造を用いた様々な解像度の格子に対して、GPU上で高速に計算する手法や袖領域のデータを交換する手法を開発した。これらを統合することで、AMR法フレームワークの構築を進めた。 当初の計画では、複数GPUで動作するAMR法フレームワークを構築する計画であったが、開発した袖領域の交換手法では、想定した性能を達成することができず、新たな実装を必要とし、課題として残った。また、複数GPU上での効率的な計算を可能とするためには、従来の動的負荷分散では高い性能が得られない可能性が高いことがわかり、新しい動的負荷分散手法の開発に着手し、今後の研究として展開する。一方で、当初の計画よりも進んで、複数の時間ステップの計算と通信をまとめて行う手法を開発し、AMR法へ適用する検討を進めた。この手法は、既存のステンシル計算フレームワークにも適用できる技術であり、発展性が高い。 本研究で開発したフレームワークを用い、高精度が必要な領域をより高精細な格子で計算する圧縮性流体アプリケーションの開発に成功した。フレームワークの構築とアプリケーションへの適用を通して、GPU上でAMR法を導入したアプリケーションを高生産に開発する方法について有益な知見が得られた。
|