2007年4月29日日曜日

マルチコアCPUはBeOSの夢を見るか?

勤務先のチーム共用サーバーとして、Xeon Quad Core 1.86GHzをDual搭載(つまり8CPU Core) マシンが導入されました。それがあまりにも速くて、8CPU Coreは無理でも4CPU Coreマシンが欲しいと思い、色々と探したところ、HPがXeon搭載マシンのキャンペーン販売をしており、1.6GHz Dual Coreを2個搭載したスペックだと、Q6600搭載マシンよりも安かったため、買ってしまいました。20inモニターをセットにしても、30万円を切る価格で購入できます。
残念ながら、思った程は速くはなくて、チーム共用サーバーの半分以下の性能ですが。まあクロック周波数が-15%でCPU数半分だから、性能が半分以下でも当然といえば当然なのですが。
#とはいえ今までのメイン機のノートPC(Pentium M 1.86MHz)に比べると、倍以上速いです。
悔しいのが、Core2 Duo 2.66MHz搭載機が、チームサーバーのOctet CPU Coreマシンに匹敵する性能で、Dual CPUにせずに1CPUでクロックの高いものにした方がよかったのかも知れません。

(2007/5/10追記)
妙に動作が遅かったのは、Index Serviceが起動していたからでした。
これを停止することで、かなり速度改善がされました。普通は手動開始になっているのが、何故か自動起動になっていて...ググったところ、こいつはかなりCPUパワーとメモリを食って、PCのパフォーマンスを低下させることで有名なようです。

(2007/5/20追記)
更にRAID0を使っていると、XPは書き込みキャッシュをデフォルトでは無効にするようで、無効になっていました。有効にしたところ劇的にパフォーマンス改善。その他チームサーバーと設定が異なっていたところを合わせてみたところ、Octetマシンの73%のパフォーマンスに改善(最初の頃は46%)されました。値段とスペックの差を考えると、かなりコストパフォーマンスがよい構成だと言えるでしょう。


それでも私はとにかく4CPUマシンが欲しかったのです。Dual CPUは既に15年前に、Celeronを無理矢理Dual CPUとして動作させるABIT BP6というマザーボードで自作マシンを組み、NT4 Workstaionを走らせて、仕事用マシンとして使用していました。
その後、Pentium4 HyperThread CPUで仮想Dual CPUマシンを、自宅の画像処理用マシンとして導入しています。
ということで、今更2CPU程度で満足なんかできるかい!と、なんとしても4CPUが欲しかったのです。
かれこれ20年近く前に、Sun SPARC Stationで仕事していたのですが、その頃Sunは「CPUの単体性能を上げるためにクロック周波数を上げると消費電力が跳ね上がったりして限界がある。それよりもCPUを多数搭載して分散処理することで処理能力を上げるべきだ」という主張をしていました。このためSunはSolarisで、スレッド性能を上げてマルチCPU対応を進めて来ています。
対して、Dec(その後Compacに買収され、更にHPに買収されました)は、Alphaアーキテクチャでひたすらにクロック周波数を上げており、その反面消費電力が150〜300Wという途方もないCPUを製造販売していました。まあ流石に無理があったのか、その後は消費電力をグンと下げてかつ周波数を上げるようになりましたが。
またBe社が独自アーキテクチャのDualCPUマシンを販売したときには、当時勤務していた会社の社長が物好きにもBeBOXを購入し、私も少しだけですが触りました。UNIXから移植されたシングルスレッドのはずのコマンドを処理するときにでさえ、2つのCPUメーターが綺麗に揃って上下するのを観たときには感動しましたね。先のBP6でNT4を動作させている時などは、CPUメーターが交互に動いていて、実質シングルCPUと変わりなかったのとは全く違いました。
XPになっても、シングルスレッドのプログラムの処理は、複数のCPUを交互に使用しているだけで、むしろレジスタやキャッシュの移動などで、シングルCPUよりも効率の悪い処理になっているように思われます。複数のアプリを立ち上げている時はまだいいのですけどね。Vistaはまだ試していませんが、機会があったら、この辺りの性能を試してみたいものです。
AppleがMacProでQuad Core Xeon x2搭載機を販売していますが、MacOS Xの分散処理能力はどうなのでしょうね?
今ではもうDual CPUが当たり前になりつつあり、AMDもIntelもMany Coreに向かいつつあるわけで、Sunが20年前に予言した通りに世の中は進みつつあります。
でも単にハードがマルチになっても、OSやアプリがそれに対応したものにならなければ、意味がありません。果たしてBeが先駆けたマルチCPUの分散処理効率の高いOSはいつ頃出現することになるのでしょうか。

0 件のコメント:

コメントを投稿