本研究では、気象庁が次期天気予報の現業コードとして開発している気象計算コードASUCAの完全版をフルGPU化する。GPUは画像処理を目的に開発されたプロセッサであり低消費電力で高速演算できる。これを汎用計算である気象計算ASUCAに適用し、高速かつ高精細な格子で計算することにより気象計算精度が格段に向上することを目的とする。 GPUに特化した言語CUDAを直接用いASUCAを実装すると、保守性や拡張性に乏しいため、本研究では、格子に基づいたシミュレーションのためのマルチGPUコンピューティング・フレームワークを開発し、これをASUCAへ適用しGPUへ実装した。構築したフレームワークは、格子上のステンシル計算を簡便に表現する機能を提供する。プログラムユーザは、これを用い、格子計算のコアとなる格子点を更新する関数のみを記述し、フレームワークはこれを基にGPUスパコン向けの最適化されたGPU実行コードを生成する。また、大規模GPU計算で重要となるノード間の通信を隠蔽する計算手法に対応した。従来の手法を拡張し、ノード内の通信ではGPU同士で直接通信する手法を新たに導入し、性能を向上させた。 構築したフレームワークを用い、GPU版ASUCAを実装した。大気の流体計算(力学過程)のコード全体と物理過程モジュールの一部を実装し、東京工業大学のスパコンTSUBAME2.5へ最適化した。フレームワークに基づいたGPU版ASUCAによって、TSUBAME2.5の4108 GPUを利用した大規模気象計算を高性能に実行することに成功した。また、気象庁で用いられている実際の入力データを用い、TSUBAME2.5上で水平解像度500mという高い空間解像度の気象計算を実現した。 本研究で開発したフレームワークは、気象計算以外の格子に基づいたシミュレーションに適用することが可能となっている。フレームワークの構築とこれを用いたASUCAの開発を通して、GPUアプリケーションを高生産に開発する方法について有益な知見が得られた。
|