今年6月ドイツで開催されたスパコンの学会で「京」は初めて世の中にデビューしたわけだが、関係者の注目を集めたのは、その演算性能を表す8.16ペタフロップスではなく、また実行効率93%という数字でもなかった。もちろん、この二つの数字は、これまでのスパコンでは考えられない画期的なものであるが、関係者が注目したのは、「演算時間28時間」だった。つまり、「どうやったら、連続28時間も動くのだ?」ということである。
近年、スパコンの競争は従来のコンピューターメーカーだけでなく、大学や研究機関も参入してきて競争が激化してきている。まさに、その性能競争の様相はF1レース、そのものである。元来、F1は一般道路は走れない、そして長時間安定して走るのも無理である。数万から数十万のプロセッサを搭載したスパコンは、長時間動かしているうちに、どれかが壊れる。そしてダウンする。だから、一昼夜以上連続して動くなど考えられないのだろう。だとすると、それは商用機には出来ない。商用機は、あくまで信号もあり、時に陥没もある一般道路を走らなければならないからだ。
そしてスパコンの性能競争は、瞬間的な最高速度ではなく、平均速度で競われる。考えてみてほしい、飛行機の平均速度には、離着陸時の速度も含まれるのだ。そうすると平均速度を早くするには、遅い速度の離着陸時間の割合を少なくするために水平飛行の時間をできるだけ長くするほうが良い。「京」は、そのために1000万次元の行列演算を対象に選んだ。その結果、計算時間が28時間かかったというわけである。ところが、IBMや富士通以外のスパコンでは、なかなかこれが難しい。F1スパコンでは、こんなに長時間連続して動けないからだ。
では、IBMや富士通は、なぜ絶対ダウンしないスパコンが出来るのか?それは、絶対にダウンしないことが要求されるメインフレームのテクノロジーを用いているからである。壊れそうになった、あるいは壊れたプロセッサからは、自分から使いもになりそうもないという信号を出してもらうのだ。そして、それらをシステムから切り離して全体に影響が出ないようにする。メインフレームでは、当たり前に行われている構造をスパコンにも適用しているからである。つまり、スパコンをF1仕様ではなくて、一般の商用車の仕組みで作っている。
もう一つ、一般のスパコンユーザーはアプリケーションソフトは自分では開発をしない。一般に売られている商用の流通アプリケーションを使う。企業は、大学が開発した無償のソフトウエアは絶対に使わない。アプリケーションソフトは保守や定期的なバージョンアップが重要であり、その保証がない無償のアプリケーションは恒久的には使えない。即ち、タダより高いものはないというわけだ。さて、アプリケーションベンダーは、特殊な構造のプロセッサを極端に嫌がる。このスパコンの世界では、Intelのx86、IBMのPower、そして、かつてのSunMicrosystemsが開発したSPARCの3種類だけが認められている。富士通は、そういう意味でスパコンに供するプロセッサとしてSPARCを使っている。
かつて、富士通はSPARCを米国シリコンバレーで開発しようと一大拠点を作ったが大失敗をした。当時の経営者は、「プロセッサを開発するなら本場のアメリカだ」と思ったに違いない。しかし、シリコンバレーという土地を選択したことが大間違いだった。シリコンバレーには、じっくりと腰を落ち着けて開発するという地味な仕事に向いているエンジニアは殆どいない。大体が、口八丁の山師である。それが証拠にインテルは世界中に複数のプロセッサ開発拠点を持っているが、シリコンバレーで出来上がったものには駄作が多い。高速プロセッサはオレゴン州のポートランド、省電力プロセッサはイスラエルのハイファで秀作が作られる。この富士通の大失敗を救ったのが、今回、日経BPで日本のリーダー100人に富士通から選ばれた井上愛一郎である。
井上は、元来、メインフレームのプロセッサ開発の仕事に従事してきた。そして、井上は東大を卒業後、一度化学メーカーに就職をしている。しかし、プロセッサ開発を生涯の仕事にするべく、富士通に中途入社した。日本にはプロセッサを自社開発しているのは富士通1社しか無かったからだ。井上は、ゼロベースからSPARCを作るのは無駄な仕事と決めつけ、自分がこれまでやってきたメインフレームのプロセッサの命令セットを変更してSPARCを作ってしまった。メインフレーム向けからSPARCへの変更量はプロセッサ回路全体の僅か数パーセントに過ぎなかった。しかも、アメリカで5年以上もかかって開発してきたSPARCプロセッサの性能を遥かに上回るものを作ってしまったのである。裏を返せば、富士通のメインフレームのプロセッサは、世界的に見ても、そう捨てたものではないということだ。この井上の発想は富士通の経営戦略に大きな光明をもたらした。メインフレームとUNIX向けプロセッサの共通開発が可能になったからだ。富士通は、メインフレームの開発を止めるわけにはいかない。そして、その開発作業の中でUNIX向けのSPARCも一緒に開発出来てしまうというわけだ。
そして、スーパーコンピューター「京」が、演算性能10ペタフロップス、実行効率93%という前人未到の性能に到達できたのは、井上の二つの挑戦があった。一つは、TOFUと呼ばれる6次元メッシュ/トーラスのインターコネクトである。8万個にも及ぶ膨大な数のプロセッサを効率よく動かすには互いの会話が高速かつスムースに行うためには特殊な高速バスを必要とする。特に、このTOFUは、自分が会話したい相手のプロセッサと最短距離で結合することができる。こうしたバスの仕組みはプロセッサ単体の性能以上にスパコン全体の性能に大きく関与する。そして、この仕組みは市販のプロセッサでは、やはり実現出来ないのだ。
もう一つ、井上が挑戦したプロセッサの新たな仕組みがある。一般的に、1、000人月の仕事があったとする。例えば建築の仕事だと思ってほしい。大体、1、000人月というのは100人で10か月と思うだろう。それが大体世の中の常識だ。それを1、000人集めてきたら1か月で出来るのか? いや、もっとわかりやすく言えば10,000人集めてきたら3日で出来るのか? そして、もっと100,000人集めてきたら2時間半で出来るのか? 一体、何を馬鹿なことを言っていると思われるだろうが、現在のスパコンというのは、そういうことをやろうとしているのである。大体、100人でやる仕事に10,000人も連れてきたら、仕事の段取りを決めるまでに何日もかかって、そのオーバーヘッドの方が本来の仕事を上回ってしまうだろう。
スパコンも全く同じことが起きる。スパコンの性能を高めようと膨大な数のプロセッサを搭載すると性能が上がるどころか、むしろ下がってしまうのだ。それは実行効率でわかる。「京」の実行効率が93%というのは驚異的な数字である。遊んでいるプロセッサが7%しかないということだ。だから、仮に電力事情と冷却能力が許せばプロセッサの数を増やせば性能はまだまだ上がる。今回のSC11で第二位のスパコンの実行効率は50%近くしかない。これは搭載したプロセッサの半分が遊んでいるということだ。こうなると、プロセッサの数を、これ以上増やせば増やすほど性能が落ちるということである。
一体、井上は何をしたのだろうか? プロセッサの数を減らして見せたのだ。つまり、アプリケーションに対して、8万個のプロセッサを1万個しかないように見せるような工夫をしている。こんな工夫も、市販のプロセッサではサポートしていない。日本のスパコン技術は、欧米のように腕力だけではない、日本特有の緻密で繊細な工夫が随所に凝らされている。