私達はなんのためにスーパーコンピューターを作り、それを何に使っているの
か、というのは、スーパーコンピューティングの発展の歴史と今後の方向を考
えるなら基本的に重要な問題である「はず」です。ここで「はず」と書いたの
は、話はそんなに簡単ではないからです。
スーパーコンピューターというのも道具で、特に良くできた道具というのは大
抵作った人が考えたこと以上にいろんなことに使われるものだからです。
これは、そもそも最初コンピューターの1つである ENIAC にあてはまることで
す。 ENIAC は元々弾道計算のための常微分方程式を解くことを目的として開
発を始められたのですが、完成が第二次世界大戦がおわった後になったこと、
フォン・ノイマンという天才が途中からとはいえかかわったこと等があって、
もっとはるかに広い応用がある、ということが早い時期に理解されることにな
ります。
つまり、「機械的に手順をふんでいって解くことができる問題」であれば、原
理的にはなんでも計算機で解くことができ、しかも人間が解くよりも何千倍、
何万倍も速くできる、ということがわかったわけです。
これは、科学のあらゆる分野に大きな影響を与えることになります。その理由
は簡単です。自然科学の法則は普通数学の方程式の形、具体的には時間変化を
与える微分方程式の形で書かれるのですが、その方程式が紙と鉛筆で計算して
答がでる、ということはほとんどないからです。しかし、大抵の方程式は計算
機を使って近似解を求めることはできるので、それで様々な実用的な目的、あ
るいは学術的な目的にも、役に立つことになります。
フォン・ノイマンとメトロポリスは ENIAC を使ってマンハッタン計画(原爆の
開発)に関する計算をした、と記述している資料もありますが、詳しいことは
不明です。水爆の計算にも使われたようですが、能力、特にメモリ不足であま
り良い答がでなかった、という資料もあります。しかし、フォン・ノイマンが
指導して作られた多くの計算機の中で、特にロスアラモスに設置された
MANIAC (Mathematical Numerical Integrator and Computer, あるいは
Metropolis and Neumann Invented an Awful Computer) は、エドワード・テ
ラーらによって水爆の開発のために必要な計算に使われた、というより、そも
そもそのために開発された、とされています。
ベーテ によると
Early in 1952 the MANIAC at Los Alamos came into operation and was
immediately put to work in the thermonuclear program. This machine
had been built with thermonuclear calculations specifically in
mind. In the program leading to Mike and later to Castle, the
resources of the new machines were taxed to the limit.
ということです。既に述べた IBM 7030 はこの MANIAC の後にロスアラモスに
納入された機械であり、主目的は同じです。一方、フォン・ノイマン自身がプ
リンストン高等研究所で開発した IAS コンピュータは、水爆の計算にも使
われましたが天体物理の計算(星の内部構造の方程式を解く)、気象計算(流体
計算による天気予報)から、初期の人工生命の研究まで、極めて多様な目的に
使われることになります。
この、非常に多様な目的にスーパーコンピューターが使われる、ということは
現在になっても本質的には変わっていないのですが、 IAS コンピュータの時
代と現在では一つ大きな違いがあります。つまり、IAS コンピュータの時代に
は、それ以外に計算機というものはなかったので、計算機が必要であるような
あらゆることがそれらでやられたわけですが、現在では普通のパソコンという
のはどこにでもあり、計算が必要といっても大抵のことはそれでできてしまう、
ということです。
実際、現在のパソコンの能力は、1990年代前半の NEC SX-3 や Cray C-90 と
いったベクトル並列計算機の時代の最後を飾るシステムとほぼ同等になってい
ます。このために、これらの計算機でできていたことは、実際に現在はパソコ
ンでできます。そうなると、パソコンでできることにスーパーコンピューター
を使うかどうか、という問題になります。
実は、もうちょっと本質的な問題があります。それは、「演算性能当りの値段」
です。パソコンの値段はピンキリですが、今だとまあ 20万円出すと最新のプ
ロセッサをのせた、ほぼ最高性能の近いものが買えるでしょう。2006年8月だ
と、Core 2 Duo を搭載して理論ピーク性能が 16 Gflops、といったところに
なります。つまり、大雑把にいって 1 Gflops が1万円で買えるわけです。
これに対して、この 3 月に高エネルギー加速器研究機構が導入したスーパー
コンピューターは、日立の SR11000 (2.15Tflops) と IBM BG/L (57.3Tflops)
の合計 60 Tflops で、レンタル費用は5年間合計で 35 億円と言われています。
つまり、 1 Tflops が 6,000万円、1Gflops で 6 万円、となり、 BG/L とい
う現在のスーパーコンピュータの中で最も価格性能比が良いものをもってきて
もハイエンドの PC を買うより 4 倍ほど価格性能比が悪いわけです。パソコ
ンの場合、さほど性能を下げないで値段を 10万以下にすることはそれほど難
しくないので、4倍というよりは 10というほうが正確です。もしも、 BG/L で
はなく SR11000 やNEC SX-8 をメインにしたシステムにすると、価格性能比
は 50倍以上違うことになります。
実は、現在の瞬間では、このことがどういう計算がスーパーコンピュータでさ
れているか、を決めています。つまり、安いパソコンを沢山買ってきて並べる
のではできない、あるいはできないことになっている、あるいはできるかもし
れないけどまだ誰もやっていない、といったところのもの、あるいは計算機を
買う人と使う人が全く別で、使う人はお金のことをあまり考えなくていいとこ
ろになっています。
膨大な計算能力が必要であるはずなのに、それをスーパーコンピューターでは
なくパソコンを沢山もってくることで解決している典型は Google でしょう。
2006年時点で Google のサーバは数十万台規模だそうで、アメリカのどの研究
所にあるどのスパコンよりも大きい、というよりそれらを全部合わせたくらい
あるわけです。 Google の競合と比べた優位性にはいくつかの理由があります
が、計算機の性能当りのハードウェアコストの低さ、というのは結構大きな要
因です。
では、実際にどういうところに売れているのか、というのを見るため、代表的
なスーパーコンピュータといえる NEC SX-8 がどんなところに売れているのか
少し調べてみました。これが実はなかなかすぐにはわかりません。 NEC のプ
レスリリースでは、英国気象庁、北陸先端科学技術大学院大学、ドイツ HLRS
(シュトゥットガルト・ハイパフォーマンス・コンピューティング・センター)、
電力中央研究所、大阪大学レーザーエネルギー学研究センター、スズキ株式会
社等です。この中で 2006/6 の Top 500 リストに入っているのは HLRS だけ
です。阪大のシステムは結構小さい(理論ピーク 96Gflops)ものなので、まさ
かこれだけしか売れていない、というわけではないと思いますがそんなに数が
でているわけでもないようです。ただ、私が知っているだけでも京都大学基礎
物理学研究所、東北大学流体科学研究所、とまだいくつかのセンターにははいっ
ているので、受注毎に全て発表しているわけではないと思います。しかし、発
表されているものの例えば 10倍以上売れているか?というとそういう感じで
はありません。結局、スズキ以外は「役所」であり、コスト・ベネフィット意
識が薄いところである、といってしまってもそれほど間違いではないと思いま
す。
実は今年度から私が代表ということになっている国立天文台のスーパーコンピュー
ターシステムについても、 2001 年には富士通のスーパーコンピューター
VPP-5000が納入されています。まあ、その、5年前には今程パソコンとベクト
ル計算機の価格性能比の差は大きくなかったので、これはまあ、、、というと
ころもあります。
しかし、現在の時点でパソコンより 50倍割高な機械を買うべきか、というの
はなかなか問題でしょう。
もちろん、一つの大きな要因は、ソフトウェアをどうするか、誰が書くか、と
いうことです。国立天文台もそうですが、大学や国立研究所のスーパーコンピュー
ターのユーザーの多くは自分達でプログラムを書いています。例えば 5 年毎
の計算機の更新の度に、今までのプログラムが全く使えなくなったのでは書き
直す間研究がストップしてしまいます。 また、一人の研究者がある計算機アー
キテクチャやそれ用のソフトウェア環境に慣れて性能が引き出せるようになる
には数年はかかるので、その意味でも計算機がくるくる変わったのでは話にな
りません。
ちょっと余談になりますが、私達が GRAPE プロジェクトを始めた時の、私個
人の結構大きな動機は、まさにこの、汎用計算機では数年毎にもっとも性能が
でるアーキテクチャは変わってしまうので、それについていくためだけにプロ
グラムを書き直すのはなんだかむなしい、というものでした。自分で専用計算
機を作るなら、その作った部分についてはそもそもプログラムを書くとかしな
くても性能がでるようにハードウェアを設計すればいい、と思ったわけです。
現在、古典的なベクトル並列や Cray XT3 のような高価な並列計算機がどうい
う分野に使われているか、ということは、必ずしも対象とする問題の性質や計
算法の性質だけで決まっているわけではなく、ソフトウェアの蓄積がどの程度
あるか、あるいはソフトウェア開発にどの程度費用とマンパワーをかけられる
か、といった経済や研究コミュニティの文化の問題が大きい、ということには
もっと注意が向けられるべきだと思います。
もうちょっと違う言い方をすると、「現在、こういった計算がスーパーコンピュー
タでは行われています」と紹介することは、ある程度まで「こういった分野で
はソフトウェアの進歩がハードウェアの変化に対応できなくなっています」と
いうことを示すことになってしまうわけです。
次回には、では、ただパソコンを沢山並べたものとスーパーコンピュータには
違いはあるのか、ということをもう一度考え直してみましょう。