研究内容

HPCとは

HPC:High-Performance Computing(ハイパフォーマンスコンピューティング)は,日本語では高性能計算とも呼ばれています。医学,薬学,工学,化学,物理学などのさまざまな分野において,科学技術計算を行うためのプログラム(アプリケーション)が開発されています。当HPC研究室では,このような科学技術計算アプリがスーパーコンピュータのような大規模並列計算環境において効率よく動作するための並列・分散コンピューティングの研究,およびメニーコアプロセッサやGPU等の最新のプロセッサ・デバイスにおいて性能を発揮するためのプログラミング(実装)・チューニング技術の研究も行っています。

また,さまざまな科学技術計算アプリのみならずビッグデータ解析やAI(人工知能)において,大規模連立一次方程式の求解や固有値計算などの行列計算が広く用いられており,当研究室では行列計算アルゴリズムを高速化・高性能化した数値ライブラリの開発を行っています。また科学技術計算アプリには高校や大学で習う基礎方程式が数多く含まれており,それらの方程式を高精度に解くための数値スキームの開発なども行っています。
以下に,各教員固有の具体的な研究テーマについて示します。


研究内容(深谷)

数値線形代数ソルバの研究

線形代数ソルバとは連立一次方程式の求解や固有値計算などの行列計算スキームを意味します。応用分野で頻出する疎行列を係数とする連立一次方程式のソルバについて研究を行っています。このような疎な係数行列を対象とする場合、反復法が主に使用されます。共役勾配法やGMRES法,BiCGSTAB法などが応用分野でよく用いられる反復法です。当研究室では、電磁場解析や構造解析の標準解法であるICCG法(不完全コレスキー分解前処理付き共役勾配法)の高性能なスレッド並列処理や大規模問題に優れた特性を持つマルチグリッド法に関する研究を行っています。

H行列(階層型行列)

H行列とは,密行列のデータをその精度をほとんど落とさずに圧縮する技術です。H行列では、行列の一部をよりデータ量の少ない低ランク行列として近似します。行列の低ランク化にはACA(Adaptive cross approximation)等の方法が使われます。N行N列の行列を用いた計算、例えば行列ベクトル積の場合、通常O(N2)のメモリ量、計算量を必要としますが、本手法を用いることで理想的にはこれらをO(N logN)に低減することができます。これは大規模な問題において大きな効果を発揮します。このことから、現在、国際的にも盛んにH行列の研究がなされています。H行列ライブラリの更なる高速化や応用分野における利用に関して研究を行っています。

通信回避型の行列計算アルゴリズム

大規模な並列計算では演算時間よりも通信時間が問題となります。 そこで,通信の回数を減らすこと(通信回避)で,通信時間を削減することを目指して,行列計算アルゴリズムを再構築します。 QR分解をはじめとした行列計算に関して,通信回避の視点に基づいたアルゴリズムの開発・改良やスーパーコンピュータを利用したアルゴリズム性能評価・分析などの研究をしています。

テンソル分解に関する高性能計算技術

テンソルは行列を高次元に一般化したもの(行列を2次元配列とすれば,テンソルは3次元以上の配列に相当)であり,複雑なデータの解析等において,テンソル分解の利用が期待されています。 そこで,これまでの行列計算に対する高性能計算の知見に基づいて,テンソル分解の計算手法を数理と高性能計算(HPC)の両面から研究し,最新の計算機環境により適したテンソル分解の計算技術の開発を目指しています。

自動チューニング

計算環境は複雑かつ多様になっており,高い性能を得るためには,それぞれの環境に適したアルゴリズムの選択やプログラム中のパラメータのチューニングが必須となります。自動チューニングでは,この作業の自動化を目指しています。行列計算を主な対象として,自動チューニングを実現するための様々な基盤技術とその応用について研究しています。

ステンシル計算の高性能実装

ステンシル計算とは,特定のパターンに従って配列の要素を更新する計算のことで,シミュレーションにおいてよく出現する計算パターンの一種です。 ステンシル計算の高性能化のためにはメモリアクセスのコストを削減することが重要であり,そのために時空間タイリングと呼ばれる方法が広く研究されています。 特に,メニーコアCPUに適した時空間タイリング手法と,電磁場解析の代表的数値計算手法であるFDTD法への応用を研究しています。


研究内容(梅田)

コンピュータシミュレーションのための数値スキームの開発

科学技術計算アプリを構成するさまざまな基礎方程式を高精度に解くための数値スキームの開発を行っています。具体的な例を以下に示します。

移流方程式の高精度ソルバ

f t + v f x = 0 で表される移流方程式は,流体力学や統計力学などのさまざまな物理法則に基づいたコンピュータシミュレーションにおいて解かれている基礎方程式の構成要素となるものです。移流方程式の一般解は f = f (xvt) となるので,その時間発展において数値解の形状が保持されることが重要となります。急峻な傾きや不連続面において数値振動を抑制,物理量を保存,および正値性を保証する数値スキームの開発を行っています。


Gauss関数波と矩形波の合成波を開発中の移流ソルバで解いた結果(v<0)。右の3次精度スキームに比べて左の5次精度スキームでは,Gauss関数波の頂点の減衰が抑えられ,また矩形波の鈍りも少なくなります。

相対論的運動方程式の高精度ソルバ

高校の物理で習うNewtonの運動方程式には,粒子の速度が光速に近づくと相対論的な補正が入ります。相対論的運動方程式は物理学分野のコンピュータシミュレーションに広く用いられており,荷電粒子の相対論的運動に対して高精度な解を得るための数値スキームの開発を行っています。


y方向に電場,z方向に磁場を印加したときの相対論的荷電粒子の運動量空間での軌跡。プラズマ粒子シミュレーションでの標準解法であるBoris法(黒点)を用いると,運動量ベクトルは理論解(緑線)とは異なる軌跡を描きます。有名な数値スキームである4次精度Runge-Kutta法(青点)を用いると,運動ベクトルは理論解から徐々にずれていきます。新しく開発した手法(赤点)を用いると,運動量ベクトルは常に理論解の軌跡を描きます。

電磁波・音波の高精度ソルバ

工学・物理学・環境学などのさまざまな分野において,電磁波および音波の解析が行われています。Finite-Difference Time-Domain:FDTD法は,電磁波および音波の標準的な数値スキームとして広く用いられています。しかし,数値シミュレーションに用いる空間次元の数や差分の精度を上げると,数値シミュレーションを安定に行うための時間ステップ幅の制限(CFL条件)が厳しくなり,数値シミュレーションに必要な計算資源が多くなります。CFL条件を緩和しつつ高精度化を行うための新たなFDTD法の開発を行っています。


2次元計算領域の中心にループアンテナを設置し,Gauss関数パルスを放射した時の電磁波の伝搬の様子。左は従来の2次精度FDTD(2,2)を用いてCFL=0.5で計算した結果,左は新しい開発した4次精度FDTDを用いたCFL=1.0で計算した結果。従来のFDTD(2,2)では波面後方に数値振動が発生しますが,新しい4次精度スキームでは数値振動が抑えられ,かつCFL条件を0.7から1.0に緩和することに成功しています。

宇宙プラズマアプリの開発

地球周辺の宇宙プラズマ環境変動の解析のためのアプリケーションとして,荷電粒子の運動方程式を解くParticle-In-Cell:PICプラズマ粒子コードと,分布関数の時間発展式であるBoltzmann (Vlasov) 方程式を解くVlasovコードの,2つの第一原理運動論アプリケーションを100%自作で開しています。これらのアプリに対して,最新の数値スキームの導入,大規模並列計算環境に対するプロセス並列化,メニーコアプロセッサに対するスレッド並列化および性能チューニングを行っており,以下に示すようなさまざまな宇宙プラズマ現象の解析に適用されています。
また,第一原理運動論では解くことが現実的に不可能な広い計算領域の現象に対する新たなアプローチとして,新規に導出した電磁流体方程式系に基づいた第3のアプリ開発も行っています。


(左)スーパーコンピュータ「京」の6,144ノードを用いて実行した,ミニ天体磁気圏とプラズマ風との相互作用に関する2兆格子5次元Vlasovシミュレーション。
(右)レイリー・テイラー不安定性の4次元Vlasovシミュレーション。密度勾配層の厚みと慣性長・イオンジャイロ半径との関係により,時間発展の様子が異なります。


ケルヴィン・ヘルムホルツ不安定性の4次元Vlasovシミュレーション。渦の回転方向とイオンジャイロ運動の回転方向の関係により,時間発展の様子が異なります。


磁力線の繋ぎ変えの5次元Vlasovシミュレーション。

Vlasovコードについては,教育用のMATLAB® 版1次元コードも公開しています。