デュアルCPUの効果

最近Celeronのデュアル化が流行っていますが,デュアルCPUって一般的な用途ではどんなときに効果があるのですか


まず第一の条件として,OSがマルチプロセッサに対応していなければ意味がありません。Windows 95/98はマルチプロセッサに対応していませんから,Windows NTやLinux,BeOS,Solarisなどの対応OSを使用する必要があります。
 OSが対応していても,すべてのケースで効果が出るわけではありません。アプリケーションの動作に関していうと,複数のアプリケーションを並行して動作させるとき,大きな効果が出ます。逆にいうと,処理を並行して行わない場合は効果が出ません。例えば,ソフトウェアをコンパイルしながら,あるいは3Dのレンダリングをしながら別の作業を行うといったケースでは高い効果が得られます。OSにもよりますが,複数の作業を並行して行うと,シングルCPUの2倍近いパフォーマンスが得られることもあります。
 複数の作業が並行して発生するという状況はサーバーで頻繁に起こります。例えば,複数の人がWebサーバーにアクセスしたり,あるいは電子メールを複数の人が読んだり送信するといったことが頻繁に起こります。サーバー分野ではマルチプロセッサのマシンが利用されることが多いのは,そのような動作で高い効果が期待できるからです。
 また,Windows NTやBeOSでは,アプリケーションがマルチスレッド化されていることが多く,そのような場合は一つのアプリケーションしか動いていなくても高速になり得ます。ただし,マルチスレッドを利用してパフォーマンスを上げられるようにソフトウェアを作るのは難しいため,デュアルCPUだといっても実際にパフォーマンスがシングルCPUの2倍に達するケースはまれでしょう。
 マルチスレッド化の効果を確認しやすいのは,単純な計算が大量に発生するような処理,例えば2Dグラフィックに変形や効果をかける処理,あるいは3Dのレンダリング処理などです。この種の単純な計算をマルチスレッド化してデュアルプロセッサ上で動かすと,シングルCPUの2倍近い速度が得られる場合もあります。
 OS自体がマルチスレッド化されているWindows NTやBeOSでは,OS自体のパフォーマンスも上がるはずです。しかし,Windows NTの場合は,目立ったパフォーマンスアップ効果は出ません。アプリケーションの起動や終了などの動作がやや高速になる程度です。16ビットアプリケーションの起動には顕著な違いが見られます。理論的には,APIの動作を複数のプロセッサが担当するため,より高速になってもおかしくないのですが,Windows NTはマルチプロセッサにそこまでは最適化されていないようです。
 というようなわけで,一般的な用途に限定するとデュアル化の効果を体感できるケースはあまりないといっていいでしょう。流行しているのは,おそらく楽しみのためです。Windows NTならタスクマネージャで,ほかのOSでもCPU負荷メーターなどで,2個のCPUが動いていることを確認でき,見ているだけで楽しいものです。実用というより趣味の領域ということなのかもしれません。
(米田 聡)



Celeronデュアル化はマニア筋を中心に流行したが,その効果のほどは……?