『原子力機構の研究開発成果2020-21』P.95
図9-7 通信オーバーラップ手法の模式図
(a)は各 GPU における計算領域の中心部分と表面部分への分割の様子を示します。(b)は各 GPU 上で処理を分割、並行処理して、通信と中心部分の演算を同時処理する手法を示します。
図9-8 GPU スパコン Summit における計算性能のスケーリング
Summit(オークリッジ国立研究所)における 7680 台の GPU を用いて計測した多相流体解析(約 75 億格子)1時間ステップ当たりの全体処理時間の GPU 台数依存性を示します。
原子炉内の複雑な熱流動現象を解析するために数値流体解析(CFD)コードの高性能化が必要とされています。従来の CFD コードは主にペタスケールの CPU計算機で開発されてきましたが、今後、解析を数千億格子規模に拡大するために GPU を搭載したエクサスケール計算機の活用が必須となります。しかしながら、GPU 計算機では演算器の集積度向上によって演算性能は従来の CPU の数十倍となるのに対し、プロセッサ間の通信性能は数倍程度の向上に留まっており、演算と通信のバランスの変化に対応できる新たな省通信型計算手法の開発が課題となっていました。今回、CFD コードの中核を成す行列計算の GPU 計算機向け計算手法を開発し、オークリッジ国立研究所に設置された世界最大のGPU 計算機 Summit において、7680 台の GPU を用いた大規模多相流体解析の高速化に成功しました。
CFD コードでは差分法による流体モデルの離散化で得られる大規模行列問題を計算します。本研究では、従来、共役勾配(CG)法と呼ばれる反復行列解法を利用していましたが、CG 法の並列計算には分割領域上の差分計算に必要な境界データ通信、及び行列解法で計算するベクトルの内積処理のための縮約通信という二つの通信処理が反復ごとに必要となります。これらの通信処理を削減するために、本研究では二つの手法、通信オーバーラップ手法及び省通信型 CG 法を用いました。境界データ通信に関しては、図 9-7 に示すように各 GPU 上の計算領域を中心部分と表面部分に分割し、境界データを参照しない中心部分の差分計算と境界データ通信を同時処理する通信オーバーラップ手法を開発し、通信コストを隠蔽しました。一方、縮約通信に関しては CG 法の数学的なアルゴリズム改良によってベクトルの内積処理を複数反復ごとに一度に処理する省通信型 CG 法を適用し、通信回数を一桁削減しました。
Summit において燃料集合体の溶融挙動を模擬する多相流体解析(約 75 億格子、燃料集合体 4 体規模)を実施し、開発手法の性能評価を実施しました。この結果、図 9-8 に示すように GPU 数 480 台から 7680 台まで計算性能が約 9 倍加速し、目標通りの良好なスケーリングが確認できました。
本研究は、Oak Ridge Leadership Computing Facility(OLCF)Director’s Discretion Project「Exascale CFDSimulations at JAEA(CSC367)」の支援の下で得られた成果です。(井戸村 泰宏)
●参考文献
Ali, Y., Idomura, Y. et al., GPU Acceleration of Communication Avoiding Chebyshev Basis Conjugate Gradient Solver for Multiphase CFD Simulations, Proceedings of 10th Workshop on Latest Advances in Scalable Algorithms for Large-Scale Systems (ScalA 2019), Denver, U.S.A., 2019, p.1–8.