スーパーコンピュータ「京」の登場や、事業仕分けをめぐる政治家の発言により一時注目されたスーパーコンピュータ。東京工業大学(以下、東工大) 学術国際情報センターの青木尊之教授は、2013年8月1日に開催された「高校生のためのCUDAサマーキャンプ2013」で、「CUDA」と「TSUBAME2.0」を使った最先端研究の成果を語った。CUDAはGPUを利用した並列計算アーキテクチャであり、TSUBAMEは東工大で運用されている大規模計算能力を持つスーパーコンピュータである。今、GPUを搭載したスーパーコンピュータで、何ができるのか。
なぜ、GPUなのか
GPUとは「Graphics Processing Unit」の略で、画像処理を行うためのプロセッサである。CPUに比べGPUは並列処理に特化しており、一度に大量の同一処理を行うことができる。
また、画像処理に適したGPUは、タブレットやスマートフォンなどの普及により市場が拡大しているため、性能が高く安価なことが特徴である。消費電力も少ない。
気流計算とGPUスパコン
天気予報は、スーパーコンピュータによって数値計算されていた
毎朝欠かさずに見る人も多い、天気予報。実は、これもスーパーコンピュータによって計算されている。空間を細かく格子状に区切って雲の量を計算し、それによって天気を予測する。この「区切り」が細かければ細かいほど、正確に予測できる。
昨年まで気象庁は、この格子を水平5キロメートル間隔に区切って計算していたが、2012年6月5日9時より新しいスーパーコンピュータに切り替え、2キロメートル間隔で計算するようにした。これにより、従来予測が難しいとされていた「局地的な大雨」などの規模の小さな現象にも対応できると期待されている(参考)。
また、青木教授と当時学生だった下川辺隆史氏(現:東工大 学術国際情報センター助教)は、気象庁と共同開発した中規模の気象現象を計算するためのモデル(メソスケールモデル)「ASUCA」のコードを書き換え、GPUで処理するよう変更。その他にも、データをGPUのメモリ上に展開しオーバーラップ処理を行うなどの工夫を盛り込み、1コアあたり50倍もの速度向上を実現したという。
計算速度を高められれば、情報をより人々に早く伝えられる。正確な情報を早く伝えることで、多くの命を救えるかもしれない。この事例は世界を驚かし、GPUを搭載したスーパーコンピュータが役立つことを証明した。
さらに、同研究者らは結果の精度をより高めるため、計算方法をGPUに適した「格子ボルツマン法」へと変更。東京の一部を計算対象範囲として、1メートル間隔での気流の計算に成功した。
医療における気流計算
続いては、医療の領域だ。こちらは、東北大学の教授との共同研究だという。
気流の計算を医療に応用すると、肺の中の気流を計算できる。例えば鼻から薬を吸引した場合、どこにどのように薬が届くかを計算できる。これを応用すれば、薬が届いてほしい場所にだけ届くようにし、逆に入ってほしくないところには届かないようにするといった配慮も可能だ。
凝固計算とGPUスパコン
車ボディに使われる新たな素材は、凝固計算によって開発
GPUスパコンは、車のボディに採用するような新素材開発にも応用されようとしている。例えば、強くて軽い新素材ができれば、輸送コストが削減でき、二酸化炭素の排出量減にもつながる。
しかし、材料のミクロな組成は金属が固まるときに決定されるため、電子顕微鏡などで生成過程を確認することが難しい。そこで、コンピュータのシミュレーションによって、擬似的に凝固の過程を見ることになる。ミリメートル単位で計算するためには、非常に大きな計算量が必要。そこで、GPUを搭載したスーパーコンピュータの登場だ。
最近では、こうした計算により、どのように結晶が成長しているかといったことも解析されている。
粒子計算とGPUスパコン
ゴルフのバンカーショットを表示するための1億3000万個の粒子計算
続いて、粒子計算を紹介する。アニメなどで砂が舞うシーンを見たことはないだろうか。これも、GPUによる計算の成果だ。例えば、ゴルフのバンカーショットで飛び散る砂を表すにはどのような計算がされているのか。
今までの例と違い、ここでは粒子単位で計算する。まず、力を加えると少しだけ凹むような1粒の粒子を想像してほしい。この粒子が他の粒子と接触したときだけ力が働くと仮定する。しかし、気流計算のときのように、空間を均等に分割してしまうと、粒子がたくさんある個所とない個所で計算の量が大幅に異なる。そのため、できるだけ均等に粒子を計算できるように区切りたい。
そこで、粒子の動き自体を計算する前に、まずは同じ格子の中に同じ数の粒子が入るよう、適切な格子の位置を定めるための計算が必要となる。これらの計算も、GPUを搭載したスーパーコンピュータが行う。
粒子の計算でポイントとなるのが、ある粒子の近くに存在する粒子をリストで持つこと。リスト化しない場合、存在するすべての粒子を検索し、粒子間の距離を出し、近くに存在する粒子を割り出さなければならない。これに対し、ある粒子の近くに存在する粒子をいつもリストとして10個持つようにしておけば、余計な計算をしなくて済む。
粒子を用いた画像1つにしても、かなり多くの計算がされていることに驚かされる。そして、やはりここでもGPUスパコンが重要な役割を担っている。
「Milk Crown」はどのように計算されているのか——粒子モデルから格子モデルへ
牛乳に滴を落としたときに現れる「Milk Crown」のような絵を、見たことはないだろうか。これは、格子モデルによって計算されている。
この場合、先ほどの粒子モデルを採用すると計算効率が悪いが、格子モデルなら効率よく計算できる。一方、水と空気の境目(界面)については考慮が必要だ。
計算方法はこうだ。界面をゼロ(0)、液体をマイナス(−)、気体をプラス(+)として計算する。
「界面」と聞くと、2次元の平面を思い浮かべるかもしれない。確かに、2次元を表すには2次元の情報でいい場合が多い。しかし、ここでは3次元の関数を使う。なぜか。
この場合、3次元空間の距離を求める必要があるためだ。青木教授はその例として、水や牛乳の界面が合体したり分離したりすることを挙げた。
このように、GPUを搭載したスーパーコンピュータはさまざまな分野で活躍している。用いられる計算式は、かなり高度な印象を持ったが、キャンプに参加した高校生たちのみならず私たち大人にとってもはっと気付かされることばかりだった。
GPUを搭載したスーパーコンピュータの最先端研究を知り、「TSUBAME」にログイン・見学ツアーに参加した高校生たちはどのようなことを思っただろうか。その答えは、未来の研究として現れてくるだろう。
Copyright© 2013 ITmedia, Inc. All Rights Reserved.