最近の話題 2002年5月11日

1.新生HPの製品統合戦略

  3%弱という僅差でCompaqの買収が株主投票で可決され,反対派のHewlett氏の投票無効の訴えも却下されたので,ついに2002年5月7日に新生HPが誕生しました。総売上げでトップのIBMに迫り,UnixサーバではSunを抜いてトップ,PCでもトップのDellに迫るという規模ですが,足し算が成立するのか?相乗効果で和より大きくなるのか,あるいは逆に小さくなってしまうのかが見ものです。

  重複する製品が相当にある両社ですから,これをどう整理するかが重要ですが,その大方針が発表されました。

  IA-32のサーバは旧CompaqのProliantラインをHP Proliantと名前を変えて継続し,HP NetServerは終息。ただし,HPのブレードサーバはテレコムマーケット向けに継続。IA-64サーバは,HPのIA-64サーバ計画に一本化。

  RISCサーバは,HPサーバがメイン。HPのPA-8800,8900とCompaqのEV-7,EV-78のプロセサロードマップは継続して開発。ただし,アルファサーバは既にアルファサーバを使っているユーザ,および高性能の科学技術計算向けに限定して販売。その後はItaniumベースのサーバに統合の方向。CompaqのNonStopサーバ(旧TandemからのNonStop Himalayaシリーズ)は従来のロードマップを継続し,2世代のMIPSプロセサによるアップグレード後,Itaniumベースに移行。

  ビジネス用のデスクトップPCとノートPCは9〜12ヶ月でHPのVectraを終息し,旧Compaqの製品に移行。Compaqブランドを継続する。個人向けのデスクトップとノートPCは,HPのPavilionとCompaqのPresarioの両方のラインを継続,併売する。

  その他の製品系列がどうなるかは発表文を見て戴くとして,プロセサが絡む方針は,こんな感じです。

  RISCサーバはソフトが違うので簡単には統合できず,暫く並行開発になるので大きな開発投資の削減は見込めません。消費者向けパソコンも二本立てですが,こちらは実質の中身は違わないので,広告宣伝や販売チャネルでの費用削減ができるかどうかだと思います。IAサーバと企業向けパソコンが一本化されるわけで,この辺がリストラの槍玉にあがりそうです。

  なお,新HPの会長はHP出身のFiorina女史,社長は旧CompaqのCapellas氏です。また,4つのグループを率いる上級副社長はサーバ担当だけが旧Compaqで,後の3グループ担当の上級副社長はHP出身です。HPがCompaqを買収した形ですから,まあ,当然の比率でしょう。

2.533MHzバスPentium 4とPentium 4ベースのCeleron

  先週紹介したように533MHzのフロントサイドバスをサポートしたPentium 4が2002年5月6日に発表されました。最高速度の2.53GHzのチップのSPECintは882,SPECfpは860と発表されています。1000個ロットの価格は,2.53GHzが$637,2.4GHzが$562,2.26GHzが$423です。また,1066MHzのDRDRAMをサポートする850Eチップセットは$36です。

  また,来週,Pentium 4ベースのCeleronを発表する予定です。クロックは1.7GHzと1.8GHzということで,Pentium 3と比較するとPentium 4は1.5倍程度のクロックで同性能ですから,このクロックでは現在の1.3GHzのP-3ベースのCeleronと同じ程度の性能にしかなりません。フロントサイドバスが現在の100MHzから400MHzになるのは数字的には大きな向上ですが,サーバならともかく,ノートではバスのバンド幅を上げても大して効果があるとは思えません。Intelが良くやる手ですが,廉価版ということでキャッシュが縮小されて128KBになっている方が性能に影響する場合が多いのではないかと思います。

  興味の中心は消費電力で,Pentium 4はPentium 3の2倍近い電力なのですが,P-3ベースのCeleronと比較してどの程度の電力になっているのでしょうか?性能が同じ位で電池寿命が半分なんてことは無いでしょうね?

3.マルチプロセサ インタコネクト ミニ特集(その1) FirePlane

  どれもマイクロプロセサになってしまって,CPU単体の性能はデスクトップPCも大型Unixサーバもメインフレームも大差ありません。Webのフロントエンドような独立した処理を行う場合はPCサーバを並べればよいのですが,相互に関連のある大量の処理を行うにはCPU間でメモリが共用できるマルチプロセサシステムが必要になります。

  マルチプロセサシステムを構成するにはプロセサ間を接続するインタコネクトが重要な役割を果たします。インタコネクトの基本的な機能はメモリやI/Oとの間の情報のやり取りを行う通路としての機能と,各プロセサのキャッシュの整合性やロードストアの実行順序などに矛盾が生じないよう制御する機能があります。

伝統的コモンバス

  インタコネクトとして伝統的に使われているのがコモンバスです。これは一本のバスに全てのプロセサが接続されており,バスを使いたいプロセサからの要求をアービタで優先順位をつけて順番にバスを使用させる方式です。 バス使用権を得たプロセサが読み出し要求とアドレスを出すと,各プロセサはアドレスバスを常に監視(snoop)しており,自分のキャッシュにそのアドレスのデータが存在し,所有権を持っている場合はデータを要求元に送ります。どのプロセサのキャッシュにも無い場合は,メモリからデータが読まれます。

  バス使用権を得たプロセサが書き込み要求を行うと,要求されたキャッシュラインを所有しているプロセサはデータを返すと同時に,自分のキャッシュからそのデータを消す制御を行います。また,そのキャッシュラインの所有権は持っていないがコピーをもっているプロセサもそのキャッシュラインのデータを消します。そして,要求を出したプロセサがそのキャッシュラインの所有権を持ち,内容を書き込みます。読み出しの場合は同時に複数のプロセサが同じキャッシュラインのコピーを持つことが出来ますが,書き込みを行う場合は,他のプロセサが持っているコピーを消してから所有権を持つプロセサが内容を変更することにより,プロセサ間のキャッシュで矛盾が生じるのを防ぐわけです。

  コモンバス方式は追加のハードも少なく一番簡単ですが,全てのプロセサが共通バスの使用権を争うので多数のプロセサを使うシステムでは性能が飽和してしまいます。また,多数のプロセサを同一のバスに接続する方式では電気的にもバスクロックを上げられないという問題もあります。基本的には,IntelのXeonやItaniumはこの方式を使っており,これが最大4CPU システムしか構成できない理由です。

SunのFireplane

  Sunサーバは4個のUltraSPARC 3プロセサとメモリを搭載したボードをFirePlaneと呼ぶインタコネクトで接続する構成になっています。FirePlaneのクロック速度は150MHzと大して速くは無いのですが,64Bのキャッシュライン単位で転送を行うので,アドレス伝送は1サイクルで,データ伝送は16B幅で4サイクル かけて転送が行われます。アドレスは基本的に全てのプロセサに同じものが送られてスヌープする方式ですが,データの方はコモンバスではなくクロスバが用いられています。クロスバは複数の転送を並列に処理できるようになっているので,(全てのプロセサが同じボードのメモリをアクセスするというような特殊なパターンを別とすれば)アドレス側で最大性能が決まります。FirePlaneの場合は64Bx150MHzですから,最大転送性能は9.6GB/sとなります。

  ボード間の要求アービタ機構やクロスバを搭載したボードの規模は違いますが,最大8CPUのSun Fire 3800から最大24CPUの6800まで同じ構造をとっています。ボード内で勝ち抜き選をやり,その勝者同士でボード間で勝ち抜き選を行うという階層的なアービタ機構により一つの要求を選択し,全てのプロセサにブロードキャストするSymmetric Multi Processor方式です。全部のプロセサがスヌープした結果を総合して,アクセス要求に応答するボードが決まるまでに15サイクル掛かります。しかし,完全なUMA(Uniform Memory Architecture)システムではなく,データが戻ってくるまでの時間はデータがどこにあるかによって異なります。アクセスするデータが自分のボード上にある場合は9サイクルで,他のボードの場合は14サイクルを必要とします。実はデータがメモリにあるか,プロセサのキャッシュにあるかによっても時間が違い,正確に言うと,アクセス時間は同一ボード内CPU:24サイクル(160ns),他ボードCPU:29サイクル(193.3ns),同一ボードメモリ:31サイクル(206.7ns),他ボードメモリ36サイクル(240ns)となります。

  9.6GB/sという性能は,Xeonの8Bx400MHz=3.2GB/sの3倍ですが,24CPUシステムではプロセサ当たりのバス性能はXeonの半分です。当然これでは上位のSun Fire 12000,15000はもたない訳で,こちらはディレクトリベースのccNUMA機構を加えることにより拡張性を持たせています。

ccNUMA FirePlane

  ccNUMAはCache Coherent Non Uniform Memory Architectureの略で,コモンバスなどの同じくプロセサのキャッシュ間の整合性は保たれているのですが,プロセサから見てどのメモリも同じように見えるという一様性は無い形式のシステムです。

  Sun Fire 12K/15Kでは,下位のシステムと同じプロセサボードを用いており,1枚のプロセサボードと1枚のI/Oボードを対として,Expanderボードというものに差込み,これをバックプレーンという大型プリント板に最大18組差し込める構造になっています。この1対のプロセサボードとI/Oボード(ボードセットと呼ぶ)の接続は上記のFirePlaneで行われており,4個のプロセサがSMPの単位となっています。

  これに加えて,ExtenderボードにはccNUMA制御を行うSSMエージェントと呼ぶ機構が乗っています。SSMエージェントは自分のボードセットからのアクセス要求が他のボードセットのメモリにある場合は,その要求を相手側のSSMに送ります。SSMエージェントは自分のメモリのコピーがどのボードセットのキャッシュに保持されているか,それが単なるコピーか所有権があるかを記録したディレクトリを持っており,これに従ってどこからデータを供給するか,コピーを消去や所有権の移転をどうするかの制御を他のSSMエージェントと協力して実行します。

  Sun Fire 15Kの72CPUを単一のSMPとするとアドレスバスが飽和して性能がでませんが,このように18個の4プロセサSMPをccNUMAで繋ぐ構造にすることにより,飽和の問題を解消することができます。そして,これらの18組のボードセットの間は,要求(アドレス),応答,データの3組のクロスバで接続されており,最大18個の要求,応答,データ転送を並列に処理することが出来ます。データクロスバは2.4GB/sの双方向の口が18個ありますから,最大転送速度は86.4GB/sです。

  昔のccNUMAは回路が遅かったこともあって,自分のメモリと比較して他のメモリとのアクセス時間が3倍とか5倍とか遅かったのですが,最近では回路の高速化により差が縮まっており,FirePlaneの場合は他のボードセットのメモリからの転送は333.3nsで,上記のSMPの他ボードからの転送に比べて1.39倍と大差ありません。最悪ケースは他ボードのメモリアクセスをしたとき,そのキャッシュラインが第三のボートセットに所有されている場合でその場合は更に73.3ns余計に掛かりますが,それでも同一ボード内の他のプロセサのキャッシュに有る最良の場合が160nsで,最悪が440nsで2.75倍に収まっています。

  このようにメモリアクセスレーテンシはそれほど大きな問題では無くなってきたのですが,データ転送速度を72CPUで割ると1.2GB/sにしかなりませんから,メモリがどこにあるかを気にしないで使うとバンド幅不足で,自分のボードセット内のメモリを優先して使う必要があります。新たにメモリ領域を割り当てる場合は自分のボードセット内に割り当てる,命令のようにリードオンリーのデータは,他のボードセットにあっても自分のメモリにもコピーを置くなどの最適化をSolarisが行っているものと思われます。

  興味のある方は,昨年のSuperComputer2001に於いて発表された論文を参照ください。

4.Sun Fire 15K SPECjbb最高性能更新(を登録申請)

  サーバ用JavaのベンチマークであるSPECjbbの最高性能のタイトルは富士通の675MHzのSPARC64プロセサを64CPU使用したPrimePower2000システムが持っており424206ですが,2002年5月8日にSunはSun Fire 15Kに1.05GHzのUltraSPARC 3を104CPU搭載したシステムで602270を出し,SPEC協会に登録手続きを取ったと発表しました。

  これはIBMのp690(1.3GHz Power4 32CPU)の339484,これまでのSunの記録である900MHz US-3 72CPUでの404472を大幅に更新する素晴らしい記録です。

  Sun Fire 15Kは上に述べたように18ボードセットが最大で,通常は4x18=72CPUが最大なのですが,I/Oボードの代わりにMax CPU BoardというUltraSPARC 3が2個載ったボードを搭載することが可能で,これを使うとボードセットは6CPUのSMPになります。今回記録更新した104CPUシステムはI/Oボードが2枚,2CPUボードが16枚という頭でっかちのシステムであまり実用的ではありません。

  ということで,より現実的な72CPUの結果も登録申請しており,こちらは433166で富士通の結果を2%程度上回っています。

  この申請は,規約通りに正しく測定されているかを審査して問題ないと認められれば登録の運びとなります。ということで,まだ,正式に記録更新ではありません。