next up previous
Next: Bibliography Up: 専用計算機の将来――GRAPEの挑戦 Previous: 5 GRAPE における「成功」

6 専用計算機の今後

さて、それでは、 GRAPE にとって次の「挑戦」というべきものはなんであろ うか?

多粒子系以外の問題に適用範囲を広げるという方向についてはどうであろうか?

これはあまりに多様な可能性がある。基本的に、ある程度計算法が確立した問 題で、なおかつメモリ必要量ではなく計算量が問題ならば、専用化によって利 益がえられないとは考えにくい。しかしながら、実際の問題に適用した時にど れだけの利点があるか、あるいはそもそもどんなアーキテクチャを考えるべき かというのは、問題毎に違っているであろう。

例えば、地球シミュレータの主なターゲットであろう気候モデルのシミュレー ションを考えてみよう。対象を全球モデル、すなわち「地球シミュレータ」の 名前の通り地球全体の気候を一度に計算する場合を考える。計算法としては従 来の延長でいくならば球面上で解く関数をルジャンドル変換する方法になる。 ルジャンドル変換はフーリエ変換のような高速アルゴリズムが存在しているわ けではなく(高速多重極法の考え方を利用した方法などが研究されているが、 まだ実用とはいいがたいようである)、計算量が球面上の格子点の数の 2 乗に 比例する。これに対して、シミュレーションのそれ以外の部分の計算量は基本 的には格子点数にしか比例しないので、地球シミュレータで扱うような高計算 時間のほとんどがルジャンドル変換に費やされることになると考えられる。

このように明確に計算量のほとんどが一つの計算に費やされるならば、これを 専用化するのは特に難しいことではない。基本的にはルジャンドル変換は基底 関数との内積をとるだけなので、基底関数の発生と内積計算に専用化したハー ドウェアを設計するのはそれほど難しいことではない。

だが、ではそういったハードウェアを作るのが現実的な解といえるかどうかは 難しいところであろう。全球モデルは主なターゲットではあるかもしれないが 唯一の目標ではないであろう。さらに、海洋・大気結合モデルとかいろいろや やこしいことを考える時にはルジャンドル変換がもっとも大変かどうか分から ない。

まあ、当たり前のことではあるが、専用化を考えるには、問題の特性を理解し、 さらに使うアルゴリズムを問題の特性と計算機ハードウェア技術の特性の両面 から最適化できる必要がある。 GRAPE が対象とする長距離相互作用多粒子系 にはまあまあうまくそういうことができていると考えられるが、これはまあ我々 にそれなりの経験の蓄積があったからであり、良く知らない問題に手を出して うまくいく可能性はそんなにない。実際にその分野の専門家が自分で作ろうと いう時に、何か助けになるとかそれくらいのことはできるかもしれないが、そ れ以上のことはなかなか難しい。

興味を持つ方がいるかもしれないので、どういう場合に専用計算機が役に立つ か、またそういうものを作るのはどうれくらい大変かということについて以下 私見をまとめておきたい。

まず、当然のことではあるが、いかに普通の計算機の効率が悪いとかそういう 問題があるにしても、それでも大して時間がかからないような問題ならばその ために何か作るというのはあまり意味がない。

ここで時間がかかるというのが具体的にはどれくらいのことをさしているかは 状況によるわけで一般的な指針というのはありえない。計算が 10 倍とか 100 倍速くなることによって得られる利益が、計算機を作ることに自分が投入する 手間その他に見合うかどうかというのが究極的な判断規準ということになる。

手間はもちろん主観的なコストも入るわけで、あなたが電子回路をいじったり 低レベルのハードウェアを操作するプログラムを書いたりすることに全く興味 も関心もなければ主観的なコストは非常に高いだろうし、逆にそういうことが 嫌いというわけではなければもちろんコストは相対的には低いということにな ろう。

極めてラフな話をするなら、例えば論文1本のために必要な計算がパソコン 1 台で1 ヶ月でできてしまうなら、それがもっと速くなるからといってあんまり 意味はないかもしれない。でも、あなたにライバルがいて、そっちは2週間で 同じ計算ができちゃうなら、1週間で同じ計算が出来れば嬉しいだろう。とは いえ、計算機は 1週間ではできないので、計算機が出来た時にまだ意味がある かという観点で考えないといけない。この時に考慮するべき重要なポイントは、 普通の計算機も(当面は)時間がたてば速くなるということである。

なお、上の、例えばパソコン 1 台で1 ヶ月というような計算は、多くの場合 それで十分だからそうしているのではなくそれ以上時間を掛けては研究になら ないからそれくらいでできることをやっているわけである。「計算機がもっと 速くなったらなにができるか」ということを考える想像力も大切かもしれない。

というわけで、速くなればいいことがある場合については、次に考えるべきこ とは速くできるかどうかである。 これは具体的な問題をみないとわからない わけだが、比較的単純な繰り返し計算が計算量の大部分を占めていれば、その 部分を速くすればいいし、それは原理的には難しくない。そうでない場合は難 しい。

さて、具体的にハードウェアにすることを考えるわけだが、とりあえずパソコ ンにつないで、ハードウェアがやってくれること以外の計算はパソコン側でや ることを考える。この場合、重要なことはデータ転送速度が十分かどうかであ る。現在、普通のパソコンで利用可能な拡張バスは 32bit 33 MHz の PCI バ スであり、DMA バースト転送を使った場合の理論ピーク速度が 133MB/s であ る。最近のパソコンは実際にこれにかなり近い速度がでる。これはしかし主記 憶の速度に比べても 1/10 以下に過ぎないものであり、非常に遅い。現在は PCI-X が普及の初期であり、こちらは 1GB/s 程度が実現可能だが、その代わ りカードの設計はそれなりに厄介になる。原理的には、 GRAPE のようなホス トと専用機で仕事を分担するような方式では、データ転送量に比べて計算量が 十分に大きい必要がある。これは、物理系のシミュレーションであれば、基本 的に近接相互作用にはむかないということである。

転送速度が十分であれば、実際にハードウェアを作ることを考えることができ る。もっとも、現在ではいきなりカスタム LSI を作るのは莫大な費用もかか り、失敗した時のリスクが大きいしそもそもそれだけの研究費を取ってくるの もなかなか難しいので、もうちょっと安くできる方法がいい。これは、現時点 では基本的には FPGA (Field Programmable Gate Array) を使うということに なる。FPGA は書き換え可能なメモリによって論理ゲートとゲート間接続をプ ログラム可能にした LSI である。カスタム LSI に比べて速度は遅く、集積度 も小さいが、それでも100万ゲートを超えるものが利用可能になってきており 演算精度によるが 100 を超える演算器が 1 チップに集積できる。これが 50 MHz で動作すれば 5 Gflops が実現でき、現時点のマイクロプロセッサに 比べて高速なものが実現できる。 PCI カード上に FPGA とメモリを載せたボー ドはいろいろなものが商品化されているので、それらを使った小規模な実験か ら始めるのが現実的な解であろう。大学等であれば FPGA 設計のためのソフト ウェアも FPGA メーカーから無償、または極めて安価に提供されている。

我々も、重力以外の相互作用計算に FPGA を使うシステムを開発中である。基 本的に粒子間相互作用をターゲットに、演算パイプラインの設計等をある程度 自動的に行うためのソフトウェアも作りつつある。

FPGA によって少なくともコスト的には小規模な専用計算機の開発は多くの人 の手の届くものになったにもかかわらず、なかなか科学技術計算への応用は進 んでいないように思う。上にみたように、専用計算機が有効であるためには様々 な条件があることは確かだが、そういった条件を満たす問題は決して少なくは ない。これを読んで、やってみようと思う人がでれば幸いである。



Jun Makino
平成14年10月4日