民主党の事業仕分けによって、理研と富士通の共同開発による世界一速いスーパーコンピュータ(スパコン)を作る国家プロジェクトが中止に追い込まれそうで、方々で話題になっているようです。
その議論は「日本は資源のない国だから科学技術に投資をしなくてどうするのか」といったものから「これは一種の公共事業で競争力のない特定の業界や特殊法人との癒着による談合だ」といったものまでいろいろあるようです。
しかし、こういう議論をしている評論家も民主党の議員や急にいろんなことをいいだした大物学者もスパコンを実際に使ったことがある人はいないのではないでしょうか。
ということで、だいぶ昔に基礎科学の研究をしていたころ僕はスパコンを毎日のように使っていたのですが、なんとか昔の記憶を思い出してスパコンというものを解説してみたいと思います。


1.スパコンはどうやって使うのか?

おそらく科学者がなんか複雑な計算をスパコンで実行して難しい問題の答えをだすみたいなことをみなさん想像しているかもしれませんが、ここでちょっと具体的に書いてみましょう。
スパコンの仕組みは簡単にいうと普通のパソコンと似たようなCPUをめちゃくちゃたくさん並列につないだだけです。
だからひとりの研究者がひとつのスパコンを使うのではなくて、必ず複数のプロジェクトが同時に走っています。
ひとりで独占的に使うのは、最初にスパコンの性能をはかるタイムアタックのときだけでしょう。
スパコンで計算するものは流体力学とか電子工学とか核融合とか膨大な計算が必要なシミュレーションで、それぞれの分野でだいたい世界標準的なプログラムがあります。
たとえば流体力学の研究ではそういったすでにあるプログラムを使ってシミュレーションします。
いろいろと条件を与えてスパコンに夕方ぐらいにほうりこんでおくと次の日に結果がでているというわけです。
このようにスパコンにインストールされているプログラムを使っていろいろな実験をするのです。
最近では、スパコン用のプログラムを作る人と、そういったプログラムを使って数値実験する人は分かれています。
あまりにも専門的になりすぎているので、両方を同時にこなすのはかなり大変だからです。
ちなみに日本はスパコン要のソフトウェア開発では世界に遅れており、代表的なプログラムの多くが海外の研究者によって開発されています。

スパコンのリソースは学識経験者による委員会が、応募されてくるさまざまな研究プロポーザルを評価して、優先順位の高いものから順番に振り分けていきます。
民間の研究者がリソースを買うこともあります。
このリソースはCPUの数x時間ではかられます。
スパコンのユーザーはこの割り当てられたリソースをお金を使うかのごとくちみちみ使っていくのです。
たとえばひとつの計算を100個のCPUで5時間実行すると100x5=500のリソースがなくなるわけです。
実績を上げている優秀な研究者は一か月に100万CPU時間とか割り当てられます。
こういった計算単位をジョブといって、たとえば「120個のCPUで10時間計算しなさい」と指示して登録しておくと、順番が来ると計算をはじめてくれます。
大型のスパコンだとこういったジョブが何10個かは必ず同時に走っています。

まあ、要するに何がいいたかったかというと、ユーザーからみればひとりでひとつのスパコンを独占するというようなことはありえないので、そのスパコンが世界一速いかどうかは実はどうでもいいといえばどうでもいいということです。
単純にユーザーの視点でみれば、世界一のスパコンを一台1000億円かけてつくるより、コストパフォーマンスのいい10億円のスパコンを競争入札で100台買った方がはるかにいいでしょう。


2.おもにどういったものを計算するのか?

自動車のエンジンの燃焼などのシミュレーションや半導体デバイスのさまざまな設計、飛行機の流体力学的な最適化、製薬のための高分子のシミュレーションなどなど、わりといろんなことに使われています。
金融工学とか計量経済学でもティック・データの解析などでたまに使っていたりします。
しかし、なんといっても世界最速のスパコンが活躍している分野は一にも二にも核兵器の開発です。
たまにスパコンは核兵器のような軍事目的に使われることもあるなどと紹介されたりしますがこれは大きな間違いで、スパコンは最新鋭の核兵器外国よりも優位に開発するために進化してきたのです。
自動車のエンジンも半導体デバイスも飛行機も製薬も実際につくってみて試行錯誤すればいいのであって、スパコンのシミュレーションが絶対に必要なのかといったらそうでもありません。
こういった分野ではシミュレーションは開発過程のなかで脇役に過ぎません。
ところが核兵器は簡単に実験できないからシミュレーションが主役になるのです。
そのうえ核兵器の開発競争で悪の枢軸国に敗れたら大変だなどといえば、政治家も国民もみんなお金を出さざるをえないので、アメリカでは核関連の研究費は湯水のようにつきます。
スパコンは核兵器のために発展してきたのです。
ランキングで上位にはいるようなおニューのスパコンはだいたいこのような核兵器に強い研究所が使っています。
最近は平和団体や環境団体などがうるさいので実験できませんが、昔は太平洋の島とか砂漠で本当の核爆弾の実験をしたりしていました。
アレは実はコンピュータ・シミュレーションのためのさまざまなパラメータを決めることが大きな目的だったのです。

要するに何がいいたかったかというと、核兵器開発に熱心ではない日本が、アメリカとスパコンの開発競争をするのは税金を投入するというモチベーション的にはかなりきついんではないかということです。

あとスパコンの事業仕分けとはぜんぜん関係ない話なんですけど、日本はせっかくアメリカの核の傘に入れてもらって仲良くやっているのに、民主党はアメリカとの核密約を追求してアメリカに核を日本に持ち込ませないように約束させようとしています。
もうバカかアホかと・・・

フォーミュラカー空力の定量解析
出所:地球シミュレータセンター

3.スパコンのタイプと開発競争の歴史

スパコンというのは昔はふたつのタイプがあってお互いに性能を競い合っていました。
スカラー型とベクトル型です。
スカラー型のCPUは一回の動作で最低限の基本的な演算を一回すばやく実行します。
AとBを加算してCに代入せよというような演算を一回するのです。
CPUは極力単純に設計されていて、複雑な計算はソフトウェアーの方で対応するという考え方です。
みんなが使っているパソコンのCPUはスカラー型です。
ベクトル型では一回の動作で複数のデータに同時に演算を実行できるようにしてあります。
を加算してに代入せよという命令が配列単位でできるのです。
スカラーは点でベクトルは線なのです。
ベクトル型のCPUは特定の用途で高いパフォーマンスを発揮できます。
ベクトル型CPUの設計は非常に複雑で開発はかなり職人芸の世界です。
パソコン用の3Dグラフィクス・カードに搭載されるGPU(Graphics Processing Unit)はこのベクトルCPUと似た構造を擬似的に実装して安価に生産できるようにしてあります。
スカラー型のスパコンはとにかく速い単純なCPUをなるべくたくさん並列につないで性能をあげます。
ベクトル型ではCPU自体に高機能なロジックを組み込んでいきます。

日本はベクトル型が得意で、土地バブルがはじける前後の1990年ぐらいは、NECとか日立とか富士通といった日本のメーカーが世界を席巻していた時期で、世界のスパコン・ランキングでも日本はアメリカと互角か分野によってはそれ以上の地位を占めていました。

ところがパソコン用のCPUの性能が飛躍的に向上していくなか、ベクトル型はスカラー型にかなわなくてなっていきます。
こういった汎用CPUはパソコンという巨大なマーケットがあるため莫大な研究開発費を投入でき、どんどん進化していきますしコストもどんどん下がっていくのです。
そしてベクトル型が得意だった日本のメーカーもスパコン・ランキングからどんどん姿を消していったのです。

また汎用的なスカラー型の方がソフトウェアの面でもユーザーが多いのでどんどん充実していきます。
複数のCPUを同時に効率的に使うためのクラスライブラリーも非常に充実しており、スカラー型のスパコンはどんどん標準化されていきました。
ある意味、最近のスパコンはコモディティー化しており、世界一のスピードといったような技術の最先端を競い合うという分野ではなくなっているのかもしれません。
ユーザーが少なくプログラミング手法も特殊なために、ソフトウェアの面でもベクトル型はどんどん不利になってしまいました。
この辺の日本のメーカーの敗れ方は、最近よく聞くガラパゴス化というやつですね。
将来ベクトル型じゃないと計算できないような重要な科学技術の問題が現れる可能性はゼロではありませんが、現状ではベクトル型コンピュータは完全に開発競争の中でスカラー型に敗れたといってもいいでしょう。

そして今、俎上に載っている理研と富士通のスパコンは実はスカラー型です。
要するにとうとう日本のメーカーはベクトル型はあきらめてIBMなどの世界のベンダーと同じ方式に切り替えたのです。
同じ仕組みだったら価格性能比で一番いいものを買えばいいというのはその通りで、国産にこだわるのはユーザーサイドからみるとやっぱりおかしい話です。

そしてここ10年ぐらいのトレンドはPCクラスタという技術です。
これはLinuxPCを少々速い特別のLANで複数つなぐだけのものです。
しかしPCはムーアの法則でめちゃくちゃコストパフォーマンスがよくなっているから、最速のLinuxマシンでも一台10万円ぐらいしかしません。
これを高速LANで100台ぐらいつなげば自家製スパコン一丁あがりです。
僕が研究していた時は「3年前に10億円で買ったスパコンよりいいものが500万円でできた」などといってPCクラスタが流行っていました。
今のPCクラスタはきっともっと性能がいいでしょう。
PCクラスタもスカラー型のスパコンも仕組みは基本的には一緒なので、並列計算用の膨大なライブラリーが存在しそれらがほとんど無料で使える状況です。
Googleなんて明らかに莫大な計算性能を保持していますが、Googleがスパコンを買ったという話を聞いたことがありません。
Googleは自前で巨大なPCクラスタを構築しているのです。

要は何がいいたかったかというと現状ではコストパフォーマンスはPCクラスタが圧倒的に一番いいということです。
世界最速のマシンならスカラー型のスパコンです。
スパコンの性能を決めるのはCPUのパワーよりはどちらかというとCPU間の通信速度の方で専用のデバイスで極限まで速くしてある大型スパコンはやはりPCクラスタなんかよりパフォーマンスはいいです。
とはいえベクトル型のスパコンの画期的な用途が将来発見されるかもしれないので、基礎研究として日本が独自の路線にも研究開発費を投じることを否定するわけではありません。


4.結論

ユーザーからみたら1000億円あったら日本も含む世界のメーカーから一番安くて一番いいスパコンをたくさん買った方がいいことは間違いまりません。
これが経済合理的な解です。
とはいえ、そんなことをいいだしたらオリンピックで金メダルを取るのはなんの意味もないといっているようなものなので、科学技術立国日本のシンボルとして世界一のスパコンを目指すのもいいかもしれません。
スパコン開発自体はコスト割れかもしれませんが、それなりに周辺技術も発展するでしょうし、優秀なエンジニアを育てるといういい副作用もあるかもしれません。
しかし国民(タックスペイヤー)を説得するにはもっといいストーリーをでっちあげる必要があるでしょう。
僕としてはスパコン要のソフトウェア開発のほうで日本のプレゼンスがなさ過ぎる方が、ハードウェアより問題だと思いますけど。

ところで、もしこのスパコンの国家プロジェクトが中止になってしまったからといって、このプロジェクトに関わっていたエンジニアは悲観することはありません。
このような日本最大級の予算をゲットできるということは(僕は面識はありませんが)スパコンの世界ではかなりすごいひとたちなのでしょう。
日本の大企業で負の遺産を背負いながら働くのも大変なので、優秀なエンジニアだけでスピンアウトして身軽になってベンチャーをはじめることもできるかもしれません。
そこまでいかなくてもIBMとかクレイとかからすぐにお呼びがかかるでしょう。
こういうのを見るとすぐに頭脳流出とか、国産技術がなんとかといってギャーギャー騒ぐ人がいますが、別にこうやって優秀な日本のエンジニアが自分の力を一番発揮できる海外の会社や大学に移籍することも、イチローや中田が世界で活躍するのと同じぐらいすばらしいことです。
逆に日本が世界の最先端の分野には、どんどん世界から優秀な人に来てもらえばいいのです。
人材の適材適所で世界全体の富は増えます。

以上。

ヒロシマとナガサキに落とされたLittleBoyとFatMan
出所: Los Alamos National Laboratory

参考資料
TOP500 List - November 2009 (1-100)
TOP500 List - November 1993 (1-100)
理化学研究所次世代スーパーコンピュータ開発実施本部
スーパーコンピューティングの将来、牧野淳一郎
大きく切り込まれた日本の科学技術予算、Nature
「最先端・高性能汎用スーパーコンピュータの開発利用」のフォローアップ結果、文部科学省
11/25 声明文(ノーベル賞・フィールズ賞受賞者による事業仕分けに対する緊急声明と科学技術予算をめぐる緊急討論会)、東京大学大学院理学系研究科
行政刷新会議、事業仕分けのメディアと実際の違い、paco、知恵市場
東京大学大型計算機センター金田研究室
まだ、次世代スパコンなるものの、仕分けとやらで揉めているのか。あほらしい。ホリエモン
「科学技術立国」に必要なのは談合ではなく競争だ、池田信夫
「スパコンの戦艦大和」の建造は中止せよ、池田信夫
スパコンの戦艦大和「京速計算機」、池田信夫
池田信夫 対 西和彦、アゴラ
計算基礎科学コンソーシアムの声明はお門違い、能澤徹
地球シミュレータ停止報道の余波、能澤徹
アメリカに学ぶものがあるとすれば...、☆たるさんのパソコンフィールド
ガラパゴス化する日本の製造業、宮崎智彦
スーパーコンピューターを20万円で創る、伊藤智義
PCクラスタ構築法―Linuxによるベオウルフ・システム、トーマス・L. スターリング、他
スーパーコンピュータ、Wikepedia


追記:日本のスパコン開発はとても複雑で深刻な問題である