9-1 原子炉内の流れの解析を高速化する

−省通信型超並列行列ソルバの開発−

図9-2 従来ソルバと省通信型ソルバの演算と通信のイメージ

図9-2 従来ソルバと省通信型ソルバの演算と通信のイメージ

(a)従来ソルバでは反復1回ごとに矢印で示した計算機間通信が発生します。(b)省通信型ソルバでは、数反復分のデータをまとめて通信し、通信回数を削減します。

 

図9-3 大規模並列時の従来ソルバと省通信型ソルバの比較

図9-3 大規模並列時の従来ソルバと省通信型ソルバの比較

「京」コンピュータにおいて3万台の計算機を用いてポアソン方程式(800×500×3540格子)の行列計算を行った際の実行時間です。従来ソルバでは全体の半分近くあった通信時間が省通信型ソルバでは大幅に削減され、全体で2倍程度の高速化を実現しました。

 


過酷事故時の原子炉内の複雑な熱流動現象を解析するために大規模な熱流動解析コードが開発されています。現在のスーパーコンピュータでは原子炉内の一部の構造物を対象とするシミュレーションが可能ですが、原子炉全体のシミュレーションを行うためには現在の100倍以上の計算性能を持つエクサスケール計算機が必要となります。

最先端のスーパーコンピュータは数万台の計算機をネットワークで接続した分散メモリ型並列計算機となっています。この性能を活かすには計算データを通信し、処理の足並みを揃える同期をとる必要がありますが、エクサスケール計算機では通信処理がボトルネックとなっています。熱流動解析コードは、圧力方程式を解く、行列ソルバが計算コストの大部分を占めます。従来の行列ソルバは通信処理のコストが比較的大きいため、大規模な並列計算では通信のボトルネックが顕在化してきました。この問題を解決し、さらに大規模な熱流動解析を可能とするために、省通信型行列ソルバを開発しました。

従来の行列ソルバは反復解法の一種である共役勾配法を用いています。この手法は、近似解の残差を計算して解を修正することにより、大規模な行列問題を反復的に計算する手法です。従来のソルバでは反復1回ごとにベクトル同士の内積計算を行いますが、その際に数万台の計算機で計算したデータを集める集団通信が必要となります(図9-2(a))。

しかし、省通信型行列ソルバでは数学的に等価なアルゴリズム修正によって内積計算に必要なデータを数回分まとめて通信し、内積計算を行うことで、集団通信及びそれに必要な同期の回数を従来の行列ソルバの数分の一に削減することができます(図9-2(b))。このアルゴリズム修正によって計算量が増加しますが、超並列計算では演算処理よりも通信処理のコストが大きくなるため、省通信型行列ソルバは超並列計算に適しています。我が国の代表的なスーパーコンピュータである「京」において本研究で開発した省通信型行列ソルバの性能評価を実施したところ、数万台の超並列処理では従来のソルバで顕在化する通信コストを大きく削減することに成功しました。また、アルゴリズムの変更によってメモリアクセス数も減少し、計算部分も加速されたため、全体として2倍程度の高速化を達成しました(図9-3)。

今後、開発した省通信型ソルバを汎用ライブラリとして整備し、成果を公開していく予定です。本研究は、文部科学省ポスト「京」重点課題E「革新的クリーンエネルギーシステムの実用化」で得られた成果です。