以前に、 37 で今後のスパコンなり専用計算機なりの開
発では、とにかくまず x86 や GPU にどうやって勝つのか?というのが問題、
という話を書きました。その時に前提にしていたのは、デスクトップ用の x86
プロセッサ、つまり、もっとも生産量の多いところの x86 プロセッサの性能が、
少なくともムーアの法則程度であがりつづける、ということです。
半導体技術的にはそうなっていけない理由は全くないのですが、現実の x86
プロセッサの進化はそういう単純なものではなくなってきているようです。
その1つの現れが Atom プロセッサです。これは、Intel がおそらく当初のねら
いとしては高機能の携帯電話のようないわゆる「組み込み」マーケットを対象
に、それほど性能が高いわけではないですが非常に安価で消費電力も少ないプ
ロセッサとして開発したものです。要するに、折角 DEC から 買った
StrongARM をものにできなかったので、組み込みマーケットは依然 ARM のもの
であるのをなんとかしてもうちょっと Intel も PC 以外に進出しよう、という
わけです。ところが、これが ASUS の安価なノートPC (EeePC) に Dothan の後
継として採用されたことから話がおかしくなってきます。ASUS は元々 AMD
Geode + Linux という想定で非常に安くしよう、としていたわけですが、
Intel, MicroSoft のそれぞれが、そういう非常に安い PC 向けには安価に
CPU+Chipset や OS を提供してきたわけです。
この ASUS EeePC が大ヒットしたのは読者の皆様もご存知の通りで、多くの日
本メーカーを含む多数の PC メーカーがこれに追随しました。これがいわゆる
ネットブックで、ATOM CPU、945チップセット、 1024x600 の液晶画面、
Windows XP というのが共通仕様です。しかし、もちろんこのネットブックの成
功は、新しいマーケットを作ったわけではなくて単に B5以下 のモバイルノー
ト、例えば Let's Note R、T の売り上げを食っているわけです。同時に、それ
は、高価なノート用低電圧 Core 2 プロセッサの売り上げを、値段が 1/10 以
下と思われる Atom プロセッサが食う、ということでもあります。 Intel にとっ
てこれはもちろん好ましいことではありませんが、放置すれば AMD や Via (ネッ
トブックに極めて近い構成の HP 2133 は Via C7 プロセッサ採用でした)にマー
ケットをとられかねないのでやむをえない選択だったのでしょう。
さて、この、性能が低いプロセッサを搭載した安価なノート PC が、性能が高
いプロセッサを搭載した高価なノートPCの売り上げを食う、というのは、要す
るにもうノートPCには高性能のプロセッサが必要ではなくなってきている、と
いうことです。実際、おそらく最も CPU パワーを使うアプリケーションは、
3D ゲームをするごく一部のユーザー以外にとっては動画再生であり、
それは Atom でも十分に行えます。また、3D ゲームにしても CPU の能力より
むしろ GPU が問題で、 945 チップセットの代わりに nVidia ION とかにすれ
ば十分かもしれません。
マイクロソフトは Vista でなんとか OS を重くして、速いプロセッサが必要
であることにしようと努力したようにみえますが、遅いだけでなにもよいこと
がみつからない Vista はさすがにユーザーに不評で、今でも「XP にダウング
レード済」が売り文句になるような状態が続いています。さらに、 Windows 7
は Vista よりも軽く「XP 並に軽快に動く」とか。
現在のところ、この、Atom ですます傾向はノートPCに留まっていますが、
デスクトップPC でも大した性能が必要なわけではないことに変わりはありませ
ん。実際、国内メーカーのデスクトップPCのラインアップを見ると、CPU は
Celeron 440 とか E1400 あたりが採用されていて、 Core i7 とか Core 2
Quad とかはどこの国の話だろう?というようなものです。4コアもあっ
ても日常使う IE や Word が速く起動してくれるわけでもないし、画面表示
が速くなるわけでもないので、 Core i7 の素晴らしいメモリバンド
幅も、その辺のアプリケーションにはさして意味がないわけです。
このような傾向は、Intel、AMD 両社の今後のプロセッサロードマップに既に反
映されています。つまり、Intel にしても AMD にしても、8コア(Nehalem-EX)
や 6-12 コア(Istanbul, Magny-Cours) が今年から来年にかけて予定されてい
ますが、これらはサーバ用でデスクトップ用ではありません。デスクトップ用
では8コアがロードマップにはいっているかどうかすらさだかではありません。
これは、長期にわたって x86 ベースではデスクトップ用とサーバ用のソケッ
ト当りの性能差がないか、どちらかというとデスクトップ用のほうが性能が高
い傾向にあった過去 10年とは全く違う状況です。
これはつまり、電卓の性能向上が必要でなくなったようにデスクトップやノー
トPC の性能向上も必要ではなくなった、ということを意味しています。結局、
10年前に比べて普通の人の PC の使いかたはさして変わっていないでしょう。
ところが、20年前だと大きく違います。20年前には、ウィンドウシステムが動
く計算機というのは Sun とかのワークステーションで、日本で買うと 500万円
くらいしました。200万円で買える Sony NEWS が画期的に安かったのです。
2-30万円の PC はシングルタスクの、OS というとちょっと違うんでは?という
感じの MS-DOS が動いていて、その上でワープロソフトを使う、というのが
PC の主な用途だったでしょう。大学等でもネットワークはまだできはじめた頃
で、メイルも普通には使われていませんでした。つまり、90年代の10年間に
PC の使われかたは大きく変わったのですが、2000年代にはそれに比べるとたい
した変化がなかったわけです。
使われかたにたいして変化がなかった10年間に PC の価格はゆっくりと下がり
続けてきました。もちろんこれは量産効果で安くなったからでもありますが、
結局は高価で高性能なものが必要なくなったからでもあります。
これに対して、サーバシステムで必要な処理能力はどんどん上昇します。
Google に代表されるようなサービスでは、結局処理能力が高いとそれだけ色々
なことができるからです。但し、これはもう超並列処理が前提で、さらに、結
局人間相手のサービスなので、 HPC と違ってレイテンシはそれほど問題になり
ません。しかし、巨大なデータベースアクセスになるのでメモリの量とバンド
幅は重要ということになります。ここでは K8 や Nehalem の高いメモリバン
ド幅は有効なわけです。
つまり、Web サービスとかそのバックエンド処理のためのサーバ用 CPU は
今後も順調に性能向上します(浮動小数点演算性能が必要かどうか不明ですが)
が、 Intel も AMD も現在の製品ロードマップはこれらは デスクトップ用と
は別の製品(CPU コアは同じでもコア数やメモリ階層、外部メモリインターフェー
スの数等が違う)になります。
コアが同じなので、別アーキテクチャの製品ほど開発コストがかからないとは
いえ、デスクトップのように数がでるわけではないサーバ用 CPU をわざわざ作
るならば高く売って儲けをださないと意味がありません。このために、サーバー
用 CPU は高価なものになります。この 10 年間は、サーバ用とデスクトップ
用で実質は同じもの、あるいはサーバー用のほうが性能が低いのに、2ソケット
や4ソケットで使える CPU は1ソケットのデスクトップ用の2倍とか10 倍とかの
値段になっていました。今後は性能が低いわけではありませんが、値段が高い
のは変わらないでしょう。
このような x86 プロセッサの開発状況の変化は、 HPC に対してどういう影
響があるでしょうか?
まず、小-中規模な PC クラスタを安く組む、というのが困難になります。
安いデスクトップ用 CPU だと随分沢山並べないと 2-4 ソケットのサーバに
比べて良いことがなくなってしまうからです。 1 ソケット 100万で PC クラス
タを買う人には別になんの変化もありませんが、同じ性能を1ソケット10万で
だそうと思っている人には冬の時代です。
GPGPU や Larrabee がデスクトップに依然高い浮動小数点演算性能を供給し続
ける、という可能性もありますが、これは少し疑わしいのではないかと思いま
す。理由は、結局デスクトップ CPU と同じで、高性能の GPU はそんなに需要
がないからです。結局、 nVidia のような会社が、 GPGPU に会社としてそれ
なりに投資すること自体が、ハイエンドの GPU はコンシューマ向けだけの商
売では厳しくなっている、ということの現れです。 HPC 用といって売れば、
コンシューマ用では 1 枚 4 万円のボードを30万円で売れるわけですから、
金額としてのマーケットが小さくても利益率が高いわけで、チップメーカーか
ら見るとおいしいマーケットです。
もちろん、ハイエンドのゲーム用 PC というのは存在を続けますが、それは
Intel SkullTrail のような、ミッドレンジサーバの構成で GPU への
インターフェースは高速にする、というものになるのではないかと思います。
そうすると、結局そのクラスのものが最も価格性能比が良いところになり、
比較的高価なプラットフォームになるわけです。
まあ、AMD のほうでは Fusion という話があり、これは結局のところミッドレ
ンジのデスクトップCPUとミッドレンジのGPU を1チップなり1パッケージなり
に集積してコストダウンとインターフェースの高速化による性能向上を図る、
という感じになるようです。ミッドレンジの GPU とハイエンドのサーバ用
CPU では処理能力に大差ないか、ヘテロジニアスな並列処理に伴うオーバーヘッ
ドを勘定にいれると CPU のほうが速いでしょう。ハイエンドのCPU+ハイエン
ドのGPU でなければ GPGPU という話は成り立たないので、ハイエンドの GPU
が高価なものになるとあまりメリットが見えなくなります。
nVidia の IR 向け資料を見ると N 体計算では GPU は CPU の 100倍速いとか
書いてあって頭が痛くなりますが、要するに GPGPU というのはその程度の
hype である、ということです。
もしも、上でみたように x86 や GPU といった「COTS」が、これからはおそら
く高価で高性能なものと安価だけどそこそこの性能のものに分化するとするな
ら、これは HPC に対する「COTS」アプローチ、というもの自体が成り立たな
くなることを意味しています。CPU や GPU メーカーが、開発にかけた投資自
体を HPC マーケットでの売り上げで少なくともある程度回収する必要がでて
くるからです。
アーキテクチャ的な観点からも、 x86 プロセッサの現在の方向が限界にきてい
る、というのは実ははっきりしています。マイクロプロセッサの発展は別に何
か新しい道を開拓しているわけではなくて、基本的に20-25年前のスーパーコン
ピューターの発展を後追いしています。25年前には巨大なシステムだったもの
が1チップになる、というだけです。その意味では、 4-8 コアというのはちょ
うど80年代後半の Cray XMP/4 や YMP/8 の時期にあたっており、 Cray の場合
はその次の C/90 の16プロセッサで事実上製品としては終了しています。NEC
はそのころになってやっと4プロセッサの SX-3 を投入し、2002年の32プロセッ
サの SX7 まで引っ張りますが、共有メモリで性能をだすというのが有利なアプ
ローチではなくなったというのは 4 で書いた通りです。つま
り、マイクロプロセッサの発展は、歴史において初めて全くお手本がないステー
ジにはいったわけです。
スーパーコンピューター開発については、90年代は ASCI プロジェクトに代表
されるような混迷の時代だったわけで、結局同じことがマイクロプロセッサ開
発でも繰り返されるのかもしれません。
というよりも、90年代の「正しい」方向は、分散メモリ並列機であったわけで
すが、1チップマイクロプロセッサでの「分散メモリ並列」というのは、
外付のメモリが普通にあるなら意味をなさないし、外付のメモリへのバンド幅
が不足している、という問題を解決できない、というのが問題です。
GPU や Core i7 に見える進化の方向は、それでも一生懸命がんばって外付メ
モリバンド幅を増やせるだけ増やす、というものですが、これが消費電力の
上昇を招いているのは明らかです。これらははそれでもまだC(G)PU とメモリ
が直結なので少しはよいはずですが、サーバー用の Nehalem EX となると
FBDIMM2 なのでさらに消費電力が上がります。
既に何度も書いてきたことですが、ここでの将来の方向は、やはり、
メモリバンド幅をそこそこに留めて演算能力を上げ、アプリケーションや
アルゴリズムをそちらに適応させる、ということだと思います。でも、
それはデスクトップやノート用の CPU/GPU の方向でも、サーバ用の CPU の方
向でもない、ということです。