スマートフォンのCPUを活用して、スーパーコンピュータがつくれたら面白い!
コンピュータサイエンス学部 石畑 宏明 教授
企業時代は、画像処理システムや並列コンピュータ、スーパーコンピュータの設計などに携わっていた石畑先生。本学では、並列コンピュータを効率よく使うための通信ネットワークなどについて研究をされています。今回はその中からいくつかの取り組みを例に挙げ、お話しいただきました。
■まずは、先生のご研究について教えてください。
並列コンピュータを効率よく使う方法について研究しています。並列コンピュータとは、コンピュータを1000台、1万台と通信ネットワークでつないで、全てを同時に使うことで、すごい計算をしようというものです。例えば、理化学研究所が開発した「京(けい)」というスーパーコンピュータの話を聞いたことがあるかもしれませんね。あれもひとつの並列コンピュータです。そういう並列コンピュータを、うまく使う方法を考えています。
具体的な話をしますと、並列コンピュータを動かす際に問題になってくるのは、通信の効率です。1万台、2万台といった数のコンピュータをつないで並列処理する場合、1台1台を勝手に働かせるのではなく、協調させて動かす必要があります。そのためには、1台1台、お互いに話し合うみたいに通信をさせなければなりません。その通信をできるだけ効率よくしようということで、例えば、全対全通信というものについて考えています。
全対全通信というのは、すべてのコンピュータが他のすべてのコンピュータに、それぞれ違った内容の情報を送信する通信パターンのことです。例えばコンピュータ1台を一人の人と考え、5人の人がそれぞれに年賀状を出すとします。1人の人は、残りの4人それぞれに年賀状を書いて送るわけです。それを5人全員が同時に行うと、5×4=20通送るということで、通信は20回行われる計算になります。送り方のパターンとしては、例えば1人の人に一斉に4人が年賀状を渡すという方法があります。送る相手を順番に変えていけば、最終的に全員が持っている年賀状をすべて目的地に送ることができますよね。ただ、この方法では一度に、1か所に年賀状が集中するという問題があるんです。年賀状なら良いですが、これがボールなら1人にたくさんのボールを投げても、受け取れません。そのボールがもし1万個もあったとしたら、とうてい受け取れませんよね(笑)。それはコンピュータも同じです。では、他に方法はないかというと、全員がひとつ隣の人に年賀状を渡すという方法があります。それなら一か所に年賀状が集中しないから、少し効率が良くなるといえます。こういうことは昔から考えられてきたことです。私の研究室では、こういう通信の方法をできるだけ効率良くするアルゴリズムを研究しています。
■実際に研究室で取り組んだ研究例には、どのようなものがありますか?
例えば、昨年、研究室にいた大学院生が研究したもので、並列コンピュータの通信方法を考えるために、その混雑具合をグラフィック表示するソフトウェアを開発した例があります。コンピュータ間を結ぶ通信ネットワークは、先ほどの年賀状の例で考えると、どの人にも簡単に年賀状を送れるように思えますが、実はものすごく大変なことです。実際の並列処理の場合、1万台あるコンピュータからそれぞれに線をひいてつなぎ、それぞれにデータが1万個集まって、また送り返してということをしますから、とてもじゃないけどつくれません。ではそれくらいコンピュータの台数が多くなった場合はどうするのかというと、例えば、メッシュ型というネットワーク構成があります。立方格子状になっていて、ひとつひとつの格子点にあるのがコンピュータ、それらを結ぶ線が通信路です。通信路は右から左へ行くものと、左から右へいくものと2通りがあります。こういう形なら情報を送りたい先が離れていても、通信路を中継することで届けられるため、1台のコンピュータから1万本も線を引いてこなくても、6本くらいつくればいいと考えられます。ただ、全対全通信をこのメッシュ型で考えてみると、送り先は集中しないけれど、経路が重複するという問題が起こります。そういう経路の混雑をシミュレーションして、混んでいないところは青色で、混んでいるところは赤色でアニメーション表示するソフトウェアを開発しました。そのシミュレーションを元に、ネットワークが効率よく使える送り方を考える研究に取り組んだのです。結局、通信をスムーズにする方法を考えないと、コンピュータの計算が進まなくて、待ち時間が増えるばかりです。例えば、並列コンピュータは心臓の動きをシミュレーションすることに使われていますが、何千台というコンピュータを使って、心臓一拍半の動きをシミュレーションするのに16時間ほどかかります。そういう並列コンピュータをより速く働かせるには、どうすればよいかということを考えています。それから、グラフィックボードを使った並列処理の研究も手がけています。
■それはどういう研究ですか?
パソコンの中にあるグラフィックボードは、本来、画像表示のための処理を行うものですが、それを並列で使ってシミュレーションをするという研究です。例えば、水のシミュレーション。水の粒ひとつひとつの動きや、粒同士の反発、吸引、重力の動きを全て計算することで、水の粒を塊で表し、それがどう落ちて流れていくかを見ることができます。水の粒ひとつひとつを独立させて計算できるので、この場合、並列処理が可能になります。1台のパソコンでシミュレーションする場合は1CPUですが、これを例えば20個のCPU使って水の粒を分担して計算処理させれば、非常に計算が高速化できます。またGPUというグラフィックプロセッサを使うと、さらに高速化することが可能です。GPUの中にあるたくさんの演算器(多いものでは500個以上の機種もある)を使用すれば、計算処理速度は格段に速くなります。今のところ落下していく水のシミュレーションをしていますが、今後は巻き波のシミュレーションができないものかと考えています。簡単ではありませんが、並列化して計算できることはわかっているので、学生にぜひ研究してもらいたいですね。
■では、最後に今後の展望をお聞かせください。
今、iPhoneやスマートフォンには、消費電力の低いプロセッサが搭載され、非常に性能が良くなっています。一方、「京」に代表されるスーパーコンピュータも性能を上げてはいますが、その分、消費電力は莫大です。これまではいくら電気を使ってもいいので、とにかく性能を上げようという設計がなされてきたという背景があるからです。ところが、最近は電気代が支払えないくらいかさんでいるという問題が起こっています。スーパーコンピュータなどの並列コンピュータはものすごい金額をかけてつくるわけですが、5年ほど使うとコンピュータより電気代も含めた維持費の方が高くなったりするくらいです。そこで、今は電気代をとにかく下げて、なんとか性能を高めようと取り組まれています。そういうことから考えてみて、スマートフォンのCPUからスーパーコンピュータをつくれたら面白いのではないかと思っています。スマートフォンとスーパーコンピュータは、技術的にはかなり似てきています。スマートフォンは、あんなに小さいけど、性能がいいですよね。消費電力あたりの性能、つまり1ワットあたりの性能を基準に考えれば、100ワットのCPUで100の演算性能があるものに対して、1ワットの性能で1の演算性能があるものであれば、それは性能としては、ほぼ同じです。ただ、1ワットの方は絶対性能が小さい分、たくさんつなぐ必要がありますが。そういう部分を解決して、スマートフォンのCPUを活用したスーパーコンピュータができたらと思っています。
また、教育者としては、学生に研究を海外で発表してほしいと思っています。特に大学院生には、ぜひ国際会議に参加してほしい。一度でも行けば、随分と成長できるのではないかと思いますから。もちろん卒業研究生にも、全国大会に出せるような研究を目指してほしいと思っています。就職活動などで時間がない分、なかなか難しいというのが現状ですが、私としては今後も積極的に学生が外へ向けた発信をするよう促していくつもりです。
■コンピュータサイエンス学部 石畑 宏明 教授研究室紹介
https://www.teu.ac.jp/grad/teacher/cs_spc/index.html?id=1629
・次回は6月8日に配信予定です。
2012年5月11日掲出