マルチコアCPUは非同期処理で使いこなせ

今後のCPUアーキテクチャ

先日発表されたIntelのQuad Coreに代表される、1つのCPUパッケージ中に複数のコアを内蔵するマルチコアCPUが今後のCPUアーキテクチャの進む道であることが明確になってきた。Intelに対峙するAMDにおいても次世代CPUはマルチコアであることを専用のサイトにて示している。

これまでどおりに半導体プロセスを微細化しても、短くなった線路から漏れる電流による消費電力の増大に手を焼き、CPUとしての動作周波数向上につながりにくくなった。また、プロセスの微細化自体も困難になってきていることなどが要因になって、1つのCPU(=コア)の性能向上よりも、1つのCPUに複数のコアをパッケージングすることによる性能向上を目指したのである。

マルチコアは高性能?

これまでにおいても、CPUの動作周波数が向上してもデスクトップPCでメール、Web、オフィスアプリ(Word、Excel、Powerpoint等)を使っている上ではあまり違いを感じることはなかった。マルチコアにおいても直感的にそれほど差が出るとは思えない。ユーザの使い方が複数の処理を同時実行することがないので、シングルコア的な使い方が主流であるうちはマルチコアの恩恵に与れないのである。

一方、エンタープライズ分野、特にサーバ分野においてはマルチコアCPUは大いに期待されている。サーバを一ヶ所に集中して配置するサーバファームにとってはサーバの設置効率を大幅に上げることができる。仮想化技術を用いた仮想サーバなどはより多くのノードを1台のサーバに集約することが可能になるだろう。

ニッチな分野になるが、筆者の手がけるリスク管理アプリケーションにおいては、Quad Core CPUは喉から手が出るほど欲しいものである。CPUの計算パワーがものを言う処理ばかりであり、モンテカルロ・シミュレーションなど並列処理が可能でグリッド・コンピューティングに向いている処理はCPU数がほぼリニアに処理性能として表れる。エンタープライズレベルのリスク管理アプリケーションではCPU数が数百、数千と言うオーダーで必要であり、Dual CoreよりもQuad Coreであればサーバ数は半分で済むことになる。

一般ユーザには利点がない?

一般ユーザにおいては、Quad Core CPUの性能を使い切ることはまずないであろう。個人で仮想マシンを駆使していたり、動画エンコーディングを行っていれば別であろうが、通常利用においてはDual Coreでももてあましているのではないだろうか。これまでの、シングルコア、シングルタスクを前提としたアプリケーションを使っている限り、マルチコアを使い切ることはできない。

マルチコアCPUを駆使するには並列処理が可能なアプリケーションが必要である。ただ、これまでの直列処理アプリケーションを並列処理に書き換えることは容易なことではない。しかし、Ajaxによって証明された非同期処理アプリケーションの優位性は今後、デスクトップアプリケーションへと波及していくことが期待できる。WordやExcelにおいても、ユーザの操作を元に必要と思われるデータをメモリに先読みしておくだけでも操作感は向上するかもしれない。

それこそ、Ajax等を使ったネットワークアプリケーションがクライアント側のマルチコア環境を駆使できるようになれば違う世界が開かれるだろう。マルチコアCPUがこれらのソフトウェア側の進化を促してくれることを期待している。