自動チューニング機能付き数値計算ソフトウェアの研究開発
黒田 久泰(数値シミュレーション研究室)

数値シミュレーションなどで必要となる大規模な計算を効率良く行うためには、コンピューターの持つ能力を最大限に活用することが必要不可欠です。そのために、対象とする計算の内容によって、どういったアルゴリズムを利用するのが良いのか、また、実行するコンピューターの仕様や性能によって、どういったプログラムコードを利用するのが良いのか、ということを数値計算ソフトウェアが自動で判断するという自動チューニングの研究を行っています。そして、コンピューターの利用者を対象に、自動チューニング機能を備えた高性能な数値計算ライブラリを開発し提供しています。

自然界における物理現象の多くは偏微分方程式の形で表すことができますが、最終的にはとても大規模な連立一次方程式を解かなくてはならいことがよくあります。この連立一次方程式を解くための解法には実に多くの解法がこれまで提案されてきました。しかし、どの解法を選べば良いのかはとても難しい問題です。というのも、係数行列の数学的な性質によってどの解法を用いれば早く解けるかが大きく変わってくるからです。また、同じ解法でも、様々なプログラムの記述の仕方があります。コンピューターにも古いものから新しいものまでを含めると多くの種類があります。そのため、同じ解法を用いたとしても、プログラムの記述の仕方が異なれば連立一次方程式が解ける時間も大きく異なります。

また、数値シミュレーションにおいては、複数台のコンピューターを繋げて多数のCPUを同時に使って大規模な計算を行うということも一般的になってきています。そして、現在のコンピューターは高性能化とともに複雑な構成になってきました。そこで、CPUの特性(コア数、命令セットの種類、レジスタの個数、キャッシュサイズ容量)、メモリ容量、メモリアクセス性能、ネットワーク性能などに応じて自動的に連立一次方程式を解く解法やプログラムコードの選択を行う機能の構築手法について研究開発を進めています。

また、コンピューターが無駄に電力を消費しないように、利用するCPUコア数やCPU動作周波数を自動的に調整するといった省電力を意識した数値計算ソフトウェアの研究開発も行っています。


 [ キーワード ]   数値シミュレーション  ソフトウェア  数値計算  自動チューニング