コンピュータシミュレーションで、新しい物理現象を発見できたときの喜びはすごい!
コンピュータサイエンス学部 生野 壮一郎 教授
電磁波や音波の伝播現象、超電導内の電流分布など、目に見えない現象をコンピュータシミュレーションで解明しようと研究されている生野先生。研究室では、そのために必要となるコンピュータ自体の数値計算を高速化する研究やアンドロイド端末のアプリケーション開発など、さまざまな取り組みがなされています。今回はその中の主要な研究について、お話しいただきました。
導波路内電磁波伝播現象の可視化。電磁波を管(くだ)の中に閉じ込め伝播させています。管の広さと電磁波の周波数の相性がよければ、電磁波を曲げながら伝播させることも可能です。
■先生の研究室では、どのようなことに取り組んでいるのですか?
大きく2つあって、ひとつは、物理的?工学的な現象をコンピュータで再現しようという研究です。わかりやすい例だと、家の中で無線LANを使っているときに電子レンジをつけると、無線LANが使えなくなったり不安定になったりすることがありますよね。これは、無線LANの周波数帯と電子レンジの周波数帯が同じだから起こる現象です。そこで電子レンジを家のどこに置けば、無線LANは影響を受けずにすむかということを考えるとすると、電波はもともと目に見えないので、コンピュータで再現して考える方法があります。例えばリフォームをする前に、先ずは様々な壁や電子レンジや無線LAN基地局の位置のパターンで、コンピュータの中で電磁波の伝播現象をシミュレーションします。そうすることで、ここに壁をつくって電子レンジを置けば、無線LANに影響を与えないというように、ある程度事前に指針が立てられ、費用の削減にもなるわけです。そんなふうにコンピュータの中で、目に見えないものや、よくわからない物事を再現して解明するのが、私の仕事になります。
ただ、コンピュータで大規模な現象を解明する場合、普通のコンピュータでは、かなり時間がかかります。そこで研究者たちは、コンピュータをたくさん並べたり、スーパーコンピュータを使ったりして、計算するわけです。
ところで、スーパーコンピュータを1日動かすと、いくらくらい電気代がかかると思いますか?なんと1ヶ月で約1~2千万円かかるんです。さらにメンテナンス代などもかかってくるので、まず一般には持てない代物ですよね。では、うちのような研究室がそれと同じような計算をどんなふうにしてするのかというと、独特のハードウェアを使うわけです。今、注目されているのが、GPU(Graphics Processing Unit)というものです。これはコンピュータの背面のモニターをつなぐところにある、画像を映す専門ユニットで、最近、精細な描画の3Dゲームなどをするゲーマーたちから3Dで画像を滑らかに動かしたいという要求が増えてきたことから、非常に性能が高くなっています。実はこれが普通のコンピュータで使われるCPU(Central Processing Unit、 中央処理装置)よりも速く動くというので、それならGPUをコンピュータ代わりに使ってしまおうという研究があるんですね。それをGPGPU(General-purpose computing on GPU)と言います。ですから物理シミュレーションなどの計算を、画像処理専門ユニットであるGPUで行う、GPGPUが当研究室の取り組みのひとつになります。
一般のGPUと数値計算もできるGPU。
大きさが全然違います。
具体的に研究室で対象としているのは、超電導、電磁波、それからプラズマ核融合などのシミュレーションです。どれも難しそうに聞えるかもしれませんが、どんな物理現象を扱うにしても、一般には連立一次方程式を解くということに帰着できるんです。連立一次方程式は、恐らく中学1年生くらいで習うものですよね。ただ、中学校で習うものは、未知数の個数が2、3個のものです。xとyなどで表した未知数を解くという程度であれば、手と紙と鉛筆があればできる計算です。ところが、この研究室が相手にしているのは、その未知数が100万~1000万個というものなんです。そのくらいになると、当然、人の手では計算できないので、コンピュータを使うことになります。そういう未知数が多い“大規模連立一次方程式”をGPUで、いかに効率よく、速く解くかということに取り組んでいるのです。この研究に関しては、今年の11月17日からアメリカのデンバーで開催される「Supercomputing Conference2013」という国際会議に出席して、発表する予定になっています。
約170万個の未知数をもつ連立1次方程式をCPUとGPUを用いて解いた時に掛かった時間(青のグラフ)の変化です。
GPUを使った時の方が早いことがわかります。
■では、もうひとつの研究というのは、どのようなものになりますか?
アンドロイド端末のアプリケーション(以下アプリ)開発ですね。今、取り組んでいるのは、お年寄りの見守りアプリです。一時期、ポットでお湯を沸かすと、離れて暮らしている家族にメールが届いて、安否を伝えるという商品がありました。それをもう少し高度なものにして、例えば、アンドロイドタブレットを使って、見守りができないかと考えています。アンドロイドタブレットの中には、ジャイロセンサー、光センサー、ネットワークチップ、GPSといったものが入っているので、それをうまく使おうという試みです。例えば、アンドロイドタブレットを部屋のどこかに置いておいて、光センサーで、何回、電気がついたかをチェックする。ただ一番の問題となるのは、電気がついた?消えたということを、どう離れたところに暮らす家族に知らせるかということです。そこで当研究室では、ツイッターを使おうと考えています。メールを使うと、いちいちメールを開かなければなりませんが、ツイッターでつぶやくように「電気が3回つきました」ということが自動的に投稿されるなら、使いやすいのではないかということで、今、進めています。
それから、睡眠時無呼吸センサーサポートアプリの開発にも取り組んでいます。眠っている間に呼吸が止まると、身体の振動も止まるので、その動きをジャイロセンサーで検出し、ログをとって、翌日、見られるようにしようというものです。人は眠っている間、腹式で呼吸をしているので、今は腹巻きの中にアンドロイド端末を入れて測定しようと取り組んでいます。また、動きだけでなく、音声のログもとります。要は、いびきですね(笑)。いびきと呼吸のログから、どの時間に呼吸が止まっているのかを明らかにして、体調管理に活用してもらおうというのが、このアプリの開発目的です。
■現象のシミュレーション研究とアプリ開発には、どんなつながりがあるのですか?
もともとは、スマートフォンの中で物理現象がシミュレーションできたら面白いかも、というのが研究の始まりでした。以前、ハドソンが販売していた「AQUA FOREST」という、流体の現象を楽しむゲームアプリがあったんですね。例えば、「コップに水を移す」というミッションでは、スマホを傾けて水を動かし、画面内のコップに入れるというように。また、その傾きを計測しているのが、スマホの中に入っているジャイロセンサーです。ジャイロセンサーで傾きを読んで、流体の計算をして流れる水を表現しているんです。これは粒子法と呼ばれる、液体や個体などの動きをシミュレーションできる手法で、映画やゲームにもよく使われています。そんな粒子法を使ったアプリと出合ったことからアプリ開発を始めたのですが、そこから今度は、粒子法をシミュレーションに使ったら何か役立つことができるのかもという発想につながり、それを電磁波の計算の応用に使うという研究につながったのです。
■先生が現在の研究分野に興味を持ったきっかけとは?また、研究の面白さとは?
小さい頃は昆虫や動物が大好きで、将来は生物学者になることが夢でした。中学生のとき、ある大学の先生から「光は曲がるんだよ!」と熱く語られたことがあり(もちろん、その当時はチンプンカンプンでしたが)、それがきっかけで、高校に入ると、物理現象の不思議に興味をもち、現象の探求が面白いと思うようになったんです。大学生になると、物理の計算にコンピュータを使えるようになったので、現象の探求とコンピュータの融合というものに出合うわけです。それがつまり、数値シミュレーションという現在の研究分野だったのです。
私の研究は、コンピュータの中で現象を再現することなので、実際に目の前で現象が起きているわけではありません。だからこそ想像もつかないことが、コンピュータの中で起こることがあるんですよ。仮説を立てて、実際にコンピュータで計算してみて、数値結果が出ますよね。大抵は仮説通りの結果になるのですが、まれに仮説とは違っていて、「なんで?」という結果が出る場合があります。そんなとき、これはコンピュータの中だから起こっていることで、実際の物理現象では起こらないのでは?という疑いが出てくるんですが、考えに考えを重ねていくと、なぜそういう結果が出たかという理由が、バチッとわかるときがあるんです。その瞬間は、もう飛び上がるくらいうれしいです。というのもコンピュータが出した結果は、実際の現象として起こることで、これまでに知られていない、まったく新しい現象を明らかにしたことを意味するからです。
また、ときにはシミュレーションしたことが、実際の現象として起こるのかどうかを確認するために実験を行うこともあります。数年前、他大学の実験装置をお借りして、徹夜でシミュレーション結果を実証する実験に取り組み、その実験結果とコンピュータのシミュレーション結果を元に書いた論文は、IEEEの論文誌の編者推薦論文に選ばれました。これも努力が報われた、感動的な出来事でしたね。コンピュータを使う研究とはいえ、やはり実際に実験で再現してみることは大事です。というのもコンピュータの中では、スケールがわからないでしょ?
例えば、コンピュータの中で3m四方の箱の中に水が動いているというのと、目の前に3m四方の箱があって、その中を水がばしゃばしゃと動いているのを見るのとでは、体感として違いますよね。3mって結構大きいですし、その中を動く水は、しぶきを上げたり溢れたり、圧力で壁を壊したりしますから、考えることがたくさんあります。例えば、そういう実験装置を見るだけでも、随分違ってくるはずです。現象が本当に起こるかどうかを考えるとき、そういうリアルな部分に接した経験がないと直感が働きません。ですから学生にもぜひ実験はもとより、日頃からリアルに実感することを心がけてほしいと思います。
研究室に届いたばかりのMIC搭載マシン。
■今後の展望をお聞かせください。
みなさんよくご存じのアインシュタインは、生涯を通じて100何十報もの論文を書きました。個人的な目標としては、そのくらいの本数の論文を発表したいと考えています。当時はもちろん手書きで論文を書いていましたが、現代はワープロやパソコンを使って論文を書きますので、推敲もしやすく、手も疲れません。アインシュタインには負けられませんね(笑)。そのためにも、どんどん新しい研究に取り組んで、新しい発見をしていかなければなりません。ですから当研究室では、すでに新しい取り組みが始まっています。これまではGPUを使った研究を進めてきたのですが、今度はMany Integrated Core(MIC)と呼ばれるものを使った研究を始めようと進めているところです。MICとGPGPUでは、どちらの処理能力が高いのかというのは、今のところせめぎ合いの状態ですが、今後、主流となるのは恐らくMICの方ではないかと予想しています。(あくまでも私見です!)ですから、このMICを使った高速シミュレーションを、工夫をこらして実現し、スーパーコンピュータに対抗したいと思っているんです。
また、教員としては、私と同じシミュレーション科学の分野を研究してくれる後進を育成したいと思っています。もちろん、これまでにも当研究室を出で、研究を続けている学生はいます。今、「京コンピュータ」のポスドク(博士研究員)をしている学生もいるのですが、その数をもっともっと増やすことができたらいいなと思っているんです。そのためにも、一人でも多くの学生に研究の面白さを実感してもらって、大学院進学を目指してもらいたいですね。
■コンピュータサイエンス学部WEB
/gakubu/cs/index.html
■シミュレーション科学研究室(生野研究室)
/info/lab/project/com/dep.html?id=119
?次回は12月13日に配信予定です。