研究Topics

『City-LES』の高速化をめぐるストーリー

多田野 寛人 助教

高性能計算システム研究部門

多田野先生は、高性能計算システム研究部門の研究者です。方程式をコンピュータで速く解くための方法を研究することで、様々なモデルの計算時間短縮に貢献しています。今回は、多田野先生が都市街区気象モデル『City-LES』の高速化に携わったときの話を紹介します。

(2024.2.14 公開)

City-LESの抱える課題

City-LESは、計算科学研究センター日下研究室で開発された、都市気象に特化したモデルです。現実の都市と同じように建物や街路樹をひとつひとつ考慮しているため、モデル内の熱放射環境は非常に複雑になっています。しかし、ラジオシティ法1)を用いれば、このような複雑な放射計算でも高精度に行うことができます。求めた放射量から地表面の温度などを算出し、LES2モデルと結合することで、都市街区内の詳細な熱環境を再現しています。

私たちの身の回りで起こる物理現象は、偏微分方程式で記述されます。熱環境をモデルで再現するということは、偏微分方程式を差分の形で表し、連立一次方程式に書き換えて数値解を求めるということです。City-LESは解くべき方程式の数が非常に多いため、計算に長い時間がかかり、この部分が高速化のボトルネックになっていました。開発者の日下先生からこのことを相談された多田野先生は、面白そうだとCity-LES開発に協力することを決めました。

図1:City-LESによってシミュレートされた東京駅周辺の地上気温分布(出典:筑波大学日下研究室)

連立一次方程式を速く解くためには・・・

いきなりですが、頭の体操です。

を解いてみましょう。解けましたか?

このように、変数を1つずつ消去して、解を求める方法を「直接解法」と呼びます。この問題は変数がxyの2つだったので、操作は2回で済みました。では、変数が数千個、数万個ならどうしますか? 数千回、数万回と操作を繰り返すのは大変です。こうした場合は、連立一次方程式を行列の形に表して解くことを考えます。具体的には、連立一次方程式を次のように変形します。

ここで、Aは係数行列、xは未知ベクトル、bは既知ベクトルです。つまり、連立一次方程式を解くということは、xを解として求めることにほかなりません。直接解法で解くのは大変なので、こういう場合は「反復解法」を使います。反復解法とは、はじめにxの解を仮定して、その値を更新していくことにより、真の解に近づけていく方法です。反復解法は1回当たりの演算量が少ないため、反復回数が少ない場合には直接解法よりも計算時間が短くなります。つまり、計算時間短縮の可能性を秘めているのは、反復解法ということになります。

多田野先生は、反復解法のひとつである「クリロフ部分空間反復法」を採用し、計算時間短縮に挑むことにしました。クリロフ部分空間反復法の概念図を図2に示します。最初に仮定する解がx0で、x0, x1, …, xkと解が更新されるにつれて、真の解xに近づいていることが分かります。解の更新の仕方にはいくつもの種類があり、今回はそのうち3つの方法(CG法、CR法、Orthomin法)で計算速度を比較することにしました。

 

図2:クリロフ部分空間反復法の概念図。行列 と非ゼロベクトル から生成されるベクトル列で張られる部分空間:Kk(A, v)=span(v, Av, …, Ak-1v)をクリロフ部分空間という。クリロフ部分空間を用いて連立一次方程式Ax=bの近似解を生成する方法をクリロフ部分空間反復法という。

反復解法では、反復回数を減らすために「前処理」を行うことがよくあります。前処理の方法には色々ありますが、多田野先生が目をつけたのは「マルチグリッド法」です。マルチグリッド法では、グリッドサイズを一気に大きくして大雑把な解を求めた後、徐々にグリッドサイズをもとに戻していき、詳細な解を求めていきます(図3)。解に見当をつけながら解くことになるので、効率的な解法だと言われています。

図3:マルチグリッド法の概念図

そこで、CG法、CR法、Orthomin法という3つの反復解法について、マルチグリッド前処理により計算時間や反復回数がどう変わるかを調べました。その結果を図4に示します。まず、前処理を行った場合(青色、緑色)と前処理を行わなかった場合(赤色)で比較すると、3つの反復解法すべてで前処理を行った方が計算時間がかなり短くなっています(図4a)。また、前処理を倍精度3)で行った場合(青色)と単精度3)で行った場合(緑色)を比較すると、単精度で行った場合の方が計算時間が短くなっています(図4a)。倍精度の方が精度は高くなりますが、今回の前処理の計算では“計算が高速化できる”というメリットの方が大きいため、計算時間が最も短かった「単精度マルチグリッド前処理付きOrthomin法(黄色枠)」が最適な手法と言えそうです。図4bによると、このときの平均反復回数は1.03回となっています。これは、ほとんど1回の更新だけで真の解が求められた、つまり、アルゴリズム的には計算速度が最大に達したことを意味します。

図4:CG法、CR法、Orthomin法に対するマルチグリッド前処理の効果。101本の線形方程式を解いたときの (a) 総計算時間、及び、(b) 平均反復回数。赤色:前処理なし、青色:倍精度でのマルチグリッド前処理あり、緑色:単精度でのマルチグリッド前処理あり。

多田野先生がCity-LESの高速化で大成功を収めることができたのは、“先入観にとらわれず、まずは試しにやってみる”というポリシーで研究されていたためです。― やはり、自分の編み出した計算を速くするテクニックが、実際のアプリケーションに役立てられると嬉しい。今後は素粒子物理学や量子力学など、様々な分野のアプリケーション開発にも積極的に携わりたい ― 多田野先生の技術を欲している研究者は、ほかにもいるはずです。「多田野先生のおかげでアプリケーションが高速化した」というニュースが、また飛び込んでくることを期待しています。

(文・広報サポーター 松山理歩)

用語

  1. ラジオシティ法:光のエネルギー輸送をシミュレートするために使用される計算手法の一種。
  2. LES(Large-Eddy Simulation):乱流計算を行う手法のひとつ。グリッドサイズより大きい渦は直接計算し、グリッドサイズよりも小さい渦はモデル化して計算する。
  3. 倍精度/単精度:プログラミング言語で用いられる数値データ型の一つで、一つの数値をそれぞれ64ビット/32ビットの長さのデータとして表す。

さらに詳しく知りたい人へ