Dual Dream

 oshikojiはデュアルCPUマシンが大好きだ。全部で5台、デュアルじゃなく4CPUのマシンも1台持っている。まあいかにも速そう、ツウそうというのが理由だったりするが、それでは実際どの程度速いのか、考えてみよう。
 じつはCPUを複数にしてもスピードはそんなに変わらないのである。もちろん、複数のCPUに対応したプログラム(たとえば3DCGのソフトとか)だと単純に2倍速くなったりするのだが、なかなかそんなソフトはないのである。
 コンピュータのソフトというものは大雑把に言ってしまえばユーザーからの命令を受け、計算をし、その結果を返すものである。この工程のうちCPUが主に司っているのは計算の部分だから計算が占める割合が多くなれば複数CPUの効果は現れてくる。ただしそれはきちんとデータを割り振ってやっている場合に限られる。そして計算が占める割合が多いソフトなど一般的なユーザーはほとんど使っていないのだ。
 もっと簡単に言うと、8月31日にみんなで集まって夏休みの宿題を必死でしているとする。計算ドリルなどは数人で分担すると顕著に効果があるだろう。でも写生とか、日記とかに対しては無力だ(笑)
 まあそんなわけでデュアルCPUにしたところで速度が2倍になったりはしないのである。

 じゃあそれでもこだわる理由は?というとレスポンスが良くなる、という点が挙げられる。CPUが複数あると一方のCPUが全力で処理している場合にももう一方のCPUに負担を分担させられる。実際Pentium 4 2.6CGHzのnarumiよりもdual Pentium III-S 1.4GHzのほうが多くのソフトを同時に立ち上げたときのレスポンスは圧倒的に良い。
 したがって複数CPUのメリットは速度が速くなることではなく、速度が落ちにくくなることだと思っていただきたい。

 市場にはクロック周波数信仰(クロック神話)のようなものがあって、クロック周波数が高い=速い、いい製品と思われている風潮がある。CPUを製造しているメーカー、IntelAMDIBMMotorolaなどはこの風潮を利用したり、逆に苦しめられてきたりした。
 古くは80486の時代、Intelがクロック逓倍技術で高クロックのCPUを作りライバルに差をつけた。クロック逓倍技術とはCPUだけがシステムバスやメモリの数倍のクロック周波数で動く、という技術である。当時はシステムバスが33MHz、CPUはその3倍で100MHzなどで動作していた。クロック逓倍技術がないメーカーは33MHzのCPUしか作れないのだからこれは圧倒的に有利だ。
 しかし近年CPUの構造が複雑(これはトランジスタの数で表される)になってくると、以前のように大幅にクロック周波数を引き上げるのが難しくなってきた。好例はApple-IBM-MotorolaPowerPC G4で、AltiVecと呼ばれるベクトル演算ユニットを内蔵したもののこれが足かせとなってなかなか高速化できないでいた。その間にIBMは構造の単純なPowerPC G3(大まかに言うとPowerPC G3にAltiVecを追加したものがG4と思っていただきたい)でG4よりも先に1GHzを達成した。
 ほかにクロック周波数信仰を打ち破ろうとしたメーカーがAMDだ。AMDはCPUをクロック周波数で呼ぶのではなくPR(P-Rating)という値で呼ぶことにした。これは同世代のIntelのCPUだと何MHzに相当しますよという意味なのだが、要するに『実際のクロック周波数の値』は劣っているわけだ。
そしてついにIntelも最近プロセッサナンバーを導入した。CPUをクロック周波数で呼ぶのではなく3桁の数字で呼ぼうというわけだ。これもPentium 4のクロック周波数をなかなか上げられないIntelの苦肉の策といえるかもしれない。
参考文献→http://pc.watch.impress.co.jp/docs/2004/0312/ubiq52.htm
 現在IntelPentium 4ではマルチプロセッサはサポートしていない。マルチプロセッサXeonの専売特許となっている。これはPentium 4がもともと高クロック志向で設計されているからなのかもしれない。しかしXeonは値段があまりにも高い。これはデュアラーのoshikojiにとってはとても残念なことだ。