2005 年の SC (Supercomputing 国際会議)では IBM BG/L がもっとも大きな話
題だったようです。(私はいってないから聞いた話では)ここでは、 BG/L がスーパー
コンピューティングの将来に対して持つ意義を考えてみます。
BG/L とはどのようなマシンであったか簡単におさらいしておきます。要素プロ
セッサは組み込み用の power 440 で、これに浮動小数点ユニットをつけてい
ます。浮動小数点ユニット自体はコロンビア/理研BNL の QCDOC とほぼ同様の
ものですが、 QCDOC では積和 (IBM Power 伝統の fused multiply add)ユニッ
ト 1 つであったのが 2つに増えています。さらにクロックは QCDOC の 500MHz
から 700 MHz に向上し、 QCDOC では 1 チップに 1 CPU だったのが 2 CPU
を1チップに集積しています。この 2 CPU が 4MB の L3 キャッシュ(バンド幅
22GB/s)及び外付 DRAM (5.5GB/s) を共有します。さらに、外部ネットワーク用
に 6 本双方向の 1.4Gb/s シリアルリンクとさらにもう 2 本ツリーネットワー
ク用のリンクがでています。
IBM
の論文は
こちら です。
単体プロセッサチップのピーク性能は倍精度 5.6 Gflops となり 2002 年頃の
PC 並で決して高いわけではありません。メモリバンド幅も DDR400 x 2 の最近の PC
より低くなっています。但し、消費電力は 10W 程度と、 100W 近い最近の PC用マイクロプ
ロセッサに比べて低いのは重要です。また、メモリインターフェース、ネットワークインター
フェース等全ての機能が 1 チップに集積されているために、事実上メモリモ
ジュールと CPU チップだけでシステムを構成できます。ネットワークもトーラ
ス+ツリーであるために、その分のハードウェアコストを非常に小さくできます。
このように極限的に必要チップ数を減らし、さらに消費電力も抑えることで
BG/L は高い価格性能比を実現しました。大雑把にいって、販売価格としてハイエンド PC
と同程度を実現できています。
販売価格が PC と同じで性能も PC と同じ程度しか出ないなら製品として意味
がないのではないかと思われるかもしれません。そうではないのが HPC
(High-Performance Computing) 商売のありがたいところです。これは、
1000台とか 10,000台規模になった時に PC を買ってきてイーサネットでつな
ぐ、というやり方で実用になるものを作るのは以下のような理由で無理がある
からです。
-
そもそも何を買えばいいのかわからない
-
ちゃんと性能がでるネットワークをどうやって構成すればいいかわからない
-
故障等に対応するのが大変
-
故障等に対応するようなメンテナンス契約をしてくれる(契約だけでなくて
ちゃんとサポートしてくれる)ところから買うととても高い
-
マシンを買うお金があったとしても置く場所がない
まあ、最初の理由は結構馬鹿になりません。他の理由も実際に調達する側から見
ると結構深刻な問題です。そういうわけで、
-
価格性能比で安い PC に大きく負けない
-
「信用できる」メーカーの製品で買ってきたら動く(はず)
-
少なくとも Linpack くらいでは性能がでている
-
体積当りの値段が高い(あんまり大きくない部屋に入る)
-
消費電力が同じ値段の PC クラスタより小さい
機械というのは、お金があって機械を買う必要がある側から見るとありがたい
存在です。ユーザーのアプリケーションで本当に性能がでるかどうかとかそ
ういうのは、調達する側から見ると些細な問題だからです。それより、「日
本一の性能」とかそういったもののほうが、買う人にとっては大事だったりし
ます。
ユーザーのアプリケーションで性能がでるかどうかは必ずしも重要ではない、
というのはもちろんいいすぎですが、しかし、既存のアプリケーションで性能が
でるかどうか、というのはあまり良い評価の観点ではない、ということもあり
ます。
というのは、既存のアプリケーションというのは、もっとも理想的な場合を考
えると現在の主流であるアーキテクチャに最適化されています。現実には、
10 年前とか 20 年前の主流であったアーキテクチャに最適化されたものが現
在でも使われている、という場合もある、というより、そのほうが圧倒的に多
いでしょう。
そうなると、既存のアプリケーションは新しいアーキテクチャの機械に最適な
計算法を使っていないために、新しい機械では原理的に実行効率が低い、とい
うことになります。これは、アーキテクチャのどんなレベルでも起きる問題で
す。
しかし、現実には、既存アプリケーションの実行速度が落ちるようなアーキテ
クチャは受け入れられにくい、というのが歴史的な経験です。
古典的な例は初期のベクトル計算機である CDC Star/Cyber-205 と Cray-1 です。
Cyber-205 のほうがピーク性能は高かったのですが、 Cray-1 はベクトル化さ
れない計算でもその前身である CDC-7600 よりも速くなっていました。これに
対して、Cyber-205 はスカラー性能で Cray-1 に大きく劣り、さらにベクトル
性能もベクトル長が非常に長くないと Cray-1 より遅いものでした。
他にも色々理由はあったと思いますが、結局 Cray-1 とその後継がベクトル機
のマーケットを支配し、 Cyber は後継の ETA-10 が安定稼働する前に会社が
解散ということになります。何故か ETA-10 を買うことになった東工大の計算
センターがどういう目にあったかは知っている人は知っているのでしょう。
この意味で、 BG/L を待つ将来がどのようなものか、は非常に興味深いところ
です。
現在までの BG/L を導入した計算センター等の特徴は、どれも「大きい」、と
いうことです。最低でも 1024 ノード、典型的には 2048 ノード以上で、価格
は数億の上のほうと思われます。 これは、結局、これよりも小さいシステムで
は PC クラスタと比べたメリットがない、ということです。
計算センターの運用という面からは、ピークが高い、設置面積が小さい、電気
代が安いというメリットを持つ BG/L ですが、使う人から見るとどうでしょう
か?単体 CPU は非常に遅いものである、というのがここではネックになる可
能性があります。クロック 700MHz というのは 5 年前の PC の数字ですし、
4演算並列実行してピーク 2.8 Gflops というのも、最初の Pentium 4 のクロッ
クの低いほうと同等です。
もちろん、 BG/L で性能を出すためには並列化が必須ですから、単体 CPU 性
能にさほど意味があるわけではありません。しかし、ユーザーが自分でプログ
ラムを書くような場合、プロセッサ台数が 100 を超えるようなところまで
性能がスケールするようにするのは容易なことではありません。この事情は、
BG/L のサイトにいくと「こんなアプリケーションでこれだけ性能がでるよう
になった」という論文が大量にあることが逆説的に示しています。つまり、
現状では、ある程度性能を出すこと自体が大がかりな研究開発課題になってし
まい、しかもそれが並列化コンパイラとかの開発ではなくアプリケーション毎
にチューニングとか新しいアルゴリズムの開発とかによって達成されているわ
けです。
言い換えると、 BG/L で効率的に動くプログラムを、個人、あるいは小さな研
究グループが独自に作る、というのは現状では現実的ではない、ということに
なります。パッケージソフトと込みで買って、専用機としてそれだけを使う、
という使いかたでなければ性能は出ないわけです。
そうなると、 PC クラスタに比べたメリットが生きるような使いかたができる
ところは、結局専用機的な使いかたをすると思い切れるところに限る、という
ことになるでしょう。あるいは、必要なソフトウェアはなんでも独自開発する
だけの人とお金をもったところ、ということになります。
これからの動向をみていく必要はありますが、 BG/L やその後継が、汎用の並
列計算機として広く受け入れられる可能性はあまりない、と私は思っています。
2005/12/5 記