2011年10月06日枝廣正人 教授(情報システム学専攻)2011/4/1着任
2011年4月に着任し、主に組込みシステム向けのマルチコア、メニーコア関連の研究を進めています。
マルチコア (Multi-Core)、メニーコア (Many-Core)というのは、LSI(Large Scale Integration, 大規模集積回路)の中に複数のプロセッサ(これをコアとよぶ)を搭載したものです。 プロセッサにはいろいろな種類がありますが、代表的なものはCPU (Central Processing Unit, 中央処理装置)であり、様々な機器の頭脳となるものです。 半世紀前には複数のLSIを用いて一つのCPUを構成していましたが、時代の進歩(半導体の微細化)とともに一つのLSIで一つのCPUを実現したマイクロプロセッサが1970年代初頭に現れ、今では一つのLSIに複数のCPUが搭載されるようになっています。 CPUの数により、デュアルコア、クアッドコアなど、その数は増加傾向にあり、将来は何十、何百というCPUが搭載されたメニーコアになると言われています。 また、専用用途であれば個々のプロセッサの面積を小さくすることができ、例えばグラフィックス・プロセッサ(GPU)ではすでに数百コアを搭載したメニーコアが登場しています。
さて、マルチコア、メニーコアには様々なメリットがありますが、その代表的なものの一つは省エネルギー性です。 詳細な話は省略しますが、高速なCPUを作ろうとすると性能あたりの電力が大きくなるという性質があります。よく、高速なCPUはスポーツカー、低速なCPUはコンパクトカーに例えられます。 1 リットルの燃料で5km走るスポーツカーで2往復するのと、1リットルの燃料で15km走るコンパクトカー2台で1往復するのと同じ時間に同じ量の荷物が運べるとしたとき、同じ仕事をするのにエネルギーが小さいのはコンパクトカー2台の方です。 これと同様に、同じ処理を行うことを考えたとき、低速なCPUをたくさん並べた方が消費するエネルギーが少なくて済むため、電力制約が厳しい組込みシステムにおいても注目されています。
メリットがあればデメリットもあり、その代表的なものの一つがソフトウェアの並列化です。複数のCPUを有効に活かすように処理(ソフトウェア)を分割することは簡単ではありません。 例えば上述の車の例で、車で運ぶ荷物が、運搬と並行して工場で製造されているとします。 スポーツカーの場合、最初に完成した荷物を先に運び、後から完成する荷物を後から運ぶことができます。 ところがコンパクトカーの場合、1台は先に出発することができますが、1台は後に完成する荷物を待つ必要があり、エネルギーは少ないかもしれませんが、スポーツカーと同じ時間内に仕事が終わりません。 これと同様に、処理(ソフトウェア)を分割し、かつ同時に実行できるようにできなければマルチコア、メニーコアの効果が損なわれてしまいます。
前置きが長くなりましたが、私の研究室では特に将来のメニーコアに向け、組込みシステムのソフトウェア最適化の研究を行っています(図参照)。 今後組込みシステムでは、人間の知的活動を支援する方向に対して高い性能が要求されると言われています。 これは例えば人間の認識、理解、判断、行動といったサイクルです。また同時に学習も行われます。 それを支援する組込みシステムも同様であり、認識・理解、学習・判断、そして制御が今後高い性能を要求する組込みシステムの応用分野と考えられています。
これらをメニーコア上で実現するには難しい課題がいくつもあります。どのようにプログラムに書き、どのように分割し、どのように実行するのか、といったことです。 また、メニーコアといっても、コアの種類にはCPUもあれば、GPUのようなアクセラレータもあり、またソフトウェアを直接ハードウェア化して高速実行する動的再構成といった技術も最近では実用化されています。 これらのコアは種類ごとに長所短所がありますが、それらを意識し、分割されたプログラムをコアに最適配置していくことも重要です。
昔からスーパーコンピュータなど並列計算機は数多くあり、プログラム言語も数多くあります。これらは流体計算など、科学技術計算において大きな成果をあげておりますが、主に膨大なデータに対し同じ処理を繰り返すデータ並列型とよばれる並列手法を実現しています。 組込みシステムにおいてもデータ並列型は重要ですが、複雑な処理フローを持つものも多く、マルチコアを意識せずに書かれたプログラムからの構造抽出は難しい場合も数多くあります。これに対し、より上位概念のモデル記述が近年車載分野などで使われてきております。 モデル記述により処理の大きな流れを解析し、かつ、個々の処理におけるデータ並列性を活かすアプローチがメニーコアの時代には重要であり、私の研究室ではモデルからの並列化と並列アルゴリズムを組み合わせた研究開発を進めています。
また、数多く分割されたプログラムをメニーコアに割り当てていく問題は、NP完全問題として旧来より知られている難しい問題で、最適な答を実用的な時間で求めることは難しいものの、短時間でより良い配置を求めることが要求されており、これに対する研究開発も進めています。
マルチコア、メニーコアには他にも自動並列化コンパイラやハードウェア・アーキテクチャなど多くの重要な研究分野がありますが、他大学や企業、学会や国の委員会などとも連携しながら進めています。
これらの研究開発により、より高性能、高機能になる組込みシステムを、より省エネルギーで実現することができ、未来の社会に貢献できると考えています。