20. ベクトルスパコンの将来 (2006/3/11)
NEC は先日、25Gbps動作の面発光レーザーを開発と
発表しました。
次世代のスーパーコンピュータ内の超高速光配線のためのもの、だそうです。
この時期にこの発表をするのは、京速計算機のアーキテクチャ検討に対するデ
モンストレーションという意味合いが大きいのでしょう。これを使うと SX-8
のシリアルインターフェースの 3Gb/s に比べて 8 倍ですから、話としてはチッ
プ当りの性能を 8 倍にできることになります。SX-8 の16 Gflops が 128
Gflops になるわけですね。まあ、そのためには1チップから 1000 本の光ファ
イバを出す必要があるわけで、それが普通の PC のプロセッサ並の値段、とい
うことはないでしょう。現在のSX-8 と同様に 100 倍ほど高くなるものと思わ
れます。それで 128 Gflops と例えば 5 年後の PC なみのピーク性能でしか
ないものにどういう将来があるのか、というのはやはり難しい問題だと思いま
す。
3 節で既に述べたように、 SX-8 の構成は NWT に始まった高
速クロスバ結合の並列ベクトル計算機というアーキテクチャの行き詰まりを示
すものになっています。高価な実装技術によってその行き詰まりをなんとかしよう、
というのは基本的にコストがあがるだけで価格競争力のある解決にはならない、
というのはこれまでに見てきた通りです。しかし、アプリケーションの側から
見ると、メモリバンド幅に余裕のあるベクトルアーキテクチャは現在のプログ
ラム資産を生かすという意味から、あるいは新規プログラムの開発しやすさ、
自動並列化のしやすさといった観点からも非常に望ましいものである、という
こともこれまで見てきた通りです。
非常に単純に、5年後の NEC スパコンがどんなものになるかを想像してみましょ
う。以下はこれを書いている 2006/3/11 の時点で公開されている情報に基づ
くものです。上で述べたように 25Gbps の線を 1000 本、ということを想定す
ると、これは SX-8 の8 倍です。従って、チップの性能も 8 倍を想定するの
が妥当でしょう。 SX-8 は 90nm なので、これを 45nm にして演算器の数を4
倍にし、さらにクロックを2倍に上げれば達成できます。まあ、クロックを2
倍にするのはかなり困難、という可能性もありますが、 SX-8 のプロセッサチッ
プは中がスカスカなので演算器をもう2倍入れるのもできなくはないと思われ
ます。
で、もっとも保守的な想像をすると、この構成で SX-8 と同様に 8チップで共
有メモリ、ピーク 1 Tflops, 640 ノードで 0.64 Pflops、という辺りが最大
構成になります。価格は 1 Tflops 当り 1 億円というところでしょう。これ
は倍くらい違うかもしれませんが、3倍は違わないでしょう。
PC 用のプロセッサで現在のマルチコア化が進むのか、もう高性能は求められ
なくなって小さなダイで安価なものになる方向にいくのかはわかりませんが、
順調に多コア化が進むと 45nm/32nm では8コアは問題なく実現でき、
100Gflops 前後のピーク性能を持つものが 10万円、ということになります。
ピーク性能あたりの価格は 100倍違うわけです。100倍の差はいくらなんでも
大きくて、実行効率の差がどうこうといっても極めて特殊な用途(があるとし
て)以外では埋められるものではありません。従って、やはり、ベクトル機が
競争力を持つためにはもっと安く作る方法を考える必要があります。
13 節で述べたように、チップ数が 10 前後ならばスタックして非
常に高いバンド幅で接続する技術は貫通電極等が現実的なものになりつつある
ので、例えばそういうのが1つの方向でしょう。そこまでエキゾチックな技術
を使わなくても、昔からある MCM のように極度に短い配線をシリコン基板
で実現することを前提にした I/O パッドにするだけで現在よりもかなり密度
を上げることができそうな気が素人考えではするわけですが、まあ、そんなに
簡単なものではないかもしれません。
渡辺氏による
京速コンピュータへの挑戦の 25 ページ目を見ると、光配線がどのよう
に使われるか、が書いてあります。 これを見ると興味深いことがわかります。
光素子は CPU やメモリチップに集積されるわけではなく、 CPU やメモリから
は一旦電気で信号線がでているのです。まあ、これは概念図なので本当は違う
のかもしれませんが、しかし実際問題としてはメモリのほうはこうならざるを
得ないのです。これは単純にメモリチップの数は非常に多いので、なんらかの
メモリコントローラチップが光配線の CPU の反対側には必要だからです。メ
モリチップ1つ1つの信号線の数はしれているので、ここでは光を使う理由はあ
りません。
つまり、光配線の意味は、ここでもネットワークの場合と同じで
「長く延ばせる」というものでしかない、ということです。
ということは、仮に NEC がチップ単体 128 Gflops、メモリバンド幅 512GB/s
を目標にするとすれば、それだけのバンド幅が実は電気でプロセッサチップか
らでてくる、ということです。それなら、その配線を直接メモリにつないでし
まえば光配線なんかいらないのではないか?ということになります。
何故光配線が必要と考えられているか、というとそれは実はチップから信号線
を出せないからではなく、高速の信号を電気では長く延ばせないから、にすぎ
ないのです。それなら、ネットワークの時に考えたのと同様、長い線を使わな
いですますようにすれば光配線はいらなくなります。では何故長い配線が必要
になったのか?ということを思い出してみると、この大きな理由は複数のプロ
セッサチップが物理的にメモリを共有するアーキテクチャになっているからで
す。
なにかどこかで聞いたような話だと思いませんか?その通り、 NWT
(4 節を参照)のところで述べた、Cray の並列ベクトル計算機
が落ちいった罠にもう一度落ちているわけです。であれば、この罠から抜け出
るのに天才のアイディアは必要ではありません。NWT のやったことをもう一
度すればいいからです。
NWT の基本的なアイディアは、多数のボードで作っていた並列ベクトル機を、
1 CPU の単純なものに戻すことで1ボードにし、ボード間の配線は減らす、と
いうものでした。従って、これをそっくりそのまま、今度は 1ボードを 1 チッ
プ(程度)に読み変えるだけです。 1 チップにして、メモリコントローラチッ
プは多分複数必要になるので、それらと同じボード上で直接電気配線でつなぎ
ます。これでも、 NEC が使うことを想定している技術であれば 500GB/s ない
し 1TB/s は容易に実現できます。SX-8 ではメモリバンド幅 64GB/s に対して
チップのトータルの通信バンド幅は実に 300GB/s に及ぶ、というのは既にみ
た通りです。
この1チップシステムは、現在の SX-8 の8 チップからなる1ノードとほぼ同等
の計算能力をもちますから、他のノードとの通信速度も現在の SX-8 なみでい
いでしょう。 16GB/s 程度ですね。問題は、これで例えば 1 Pflops のシステ
ムを構成しようと思うと 10万プロセッサになり、 SX-8 や地球シミュレータ
でやっているような完全なクロスバーは現実的ではない、ということです。
現実的ではないのですが、しかし、実はこれはノードレベルで共有メモリで
CPU とメモリの間を光配線するよりははるかに現実的です。というのは、光配
線を通るデータの通信のバンド幅が2桁程度減少しているからです。元々は
メモリだけで 1 チップにつき有効なメモリバンド幅で 512GB/s 分、チップの
物理レベルではおそらく 2TB/s であったものを、16GB/s まで減らそう、とい
う話だからです。従って、Ωやファットツリーのような多段ネットワークを使っ
ても、まだコストは安いでしょう。まあ、光素子とかよりも光ケーブル自体の
ほうが大変かもしれません。 25Gb/s としても10本は必要ですから、10 万プ
ロセッサで多段ネットワークを組むと数100万本になります。1つが 10m とし
ても 100万本で 1万 km と地球シミュレータのケーブル総延長 3000km よりも
まだ長い、ということになります。しかし、長い線については波長多重とかで
減らせばいいわけで、本質的な問題ではありません。
つまり、 8 チップでメモリ共有、という伝統的なアーキテクチャを止めて、
NWT 的に単純なプロセッサを、非常に沢山並列動作させる、という方向を押し
進めるならば、仮に多段スイッチを作ったとしてさえ SX-8 の延長よりも 1桁
以上コストを切り下げることができるでしょう。多段ネットワークをもっと単
純でケーブルの短くてすむメッシュ的なネットワークにしてしまえば、さらに
もう1桁、というのも不可能ではないようにみえます。
でも、こんなシステムは使いにくいのではないか?と思われるかもしれません。
が、プロセッサレベルでメモリバンド幅が十分にある、というベクトルプロセッ
サの本質的な優位性を残しているので、比較的単純なソースプログラムから自
動並列化して出来たプログラムで高い性能がでる、というメリットは失われて
いません。また、多くのアプリケーションでは近接ノード間の通信が支配的で
すから、それらではメッシュ結合で十分です。もちろん、例えば大規模な 3D
FFT をやる、といった場合だとメッシュでは多少問題がでる可能性もあります
が、 BG/L が 3D FFT で(非常に大変なプログラムを書いたようですが)まあま
あの実効性能をたしてきた、ということを考慮すると、メッシュ結合でも
ネットワーク速度は十分と思われます。
これで価格性能比で PC クラスタに勝てるか、というと、 100 倍悪かったも
のが 10 倍になるだけなのですが、しかし 10 倍の違いは極めて大きい、と
いうことも考慮するべきと思われます。将来的には貫通電極等が使えるとする
なら、高いメモリバンド幅を要求するベクトルアーキテクチャ自体に将来がな
い、というわけでは実はありません。従って、そのような、極めて高いバンド
幅を近距離では使える、という技術的な制約に適したアーキテクチャを考えて
いくべきであり、しかもそのためにどうすればいいかは、既に NWT によって
明らかにされているのです。