Windows 7/Vista/XPの“マルチコア対応力”を検証する|マルチコア・コンピューティング|トピックス|Computerworld

CW_Welcomeバナー

header_cwr_head_mid_fl_logo

CW_ADJUST_ウルトラバナー

CW_ウルトラバナー_Topics02

CW_ウルトラバナー_Topics04

CW_ウルトラバナー_Topics05

CW_ウルトラバナー_Topics06

CW_ウルトラバナー_Topics07

CW_ウルトラバナー_Topics08

マルチコア・コンピューティング

RSS
【解説】

Windows 7/Vista/XPの“マルチコア対応力”を検証する

デスクトップ向けWindowsは最新CPUの能力をどのくらい生かせるか
(2009年02月03日)

CPUの高速化・高集積化は、相変わらず目覚しい勢いで進んでいる。ただし、そうした進化は近年、かつてのようなクロック数の向上ではなく、コア数の増加という形を取るようになった。では、OSは増加したCPUコアを十分に活用し、そのメリットを十分に享受できているのか。本稿では、Windows XP、Windows Vista、Windows 7という3つのデスクトップOSが、どのくらいマルチコアCPUの能力を生かせるのかという点を検証した。

 若さ、豊かさ、あるいは賢さ、美しさ――これらはいくらあっても良いものだが、CPUにも同じことが言えるのだろうか。IntelとAMDは共にコア数を増やし続けている。将来のパーソナル・コンピューティング領域では並列処理が当たり前になるだろう。

 もはや、パイプライン処理の流れを高速化するために、クロック数を上げる時代は終焉した。ここに来て重要になってきているのは“バンド幅”である。つまり、クロック周期ごとにどれだけの命令を同時実行できるかということだ。

 CPUのマルチコア化と歩調を合わせ、デスクトップ向けのWindowsも進化してきた。Windows XP、Windows Vista、そしてまもなく出荷されるWindows 7は、すべてSMP(Symmetrical Multiprocessing:対称型マルチプロセッシング)をデフォルトでサポートしている。このSMP対応は、Windows NTから引き継がれてきた機能だ。

 ただし、マルチコアCPUは、複数CPUによる並列処理と厳密に同じ処理を行うわけではない。そのため、マルチコアCPUの黎明期に出荷されたWindows Vista、そしてもちろんWindows 7は、マルチコアの低レイテンシー/共有キャッシュ環境下でパフォーマンスを最適化できるようにチューニングされている。一方、Windows XPについては、こうしたチューニングは施されていない。

 では、マルチコア対応のためのチューニングは、OSのパフォーマンスとスケーラビリティにどのくらい影響を及ぼしているのだろうか。また、今後もWindows XPを使い続けた場合、ユーザーは何か不利益を被るのか、それともメリットが得られるのだろうか。

 InfoWorld編集部では、Windowsのマルチコア・サポートの限界値をテストするために、デュアル/クアッドコア・マシン上で各Windows OSを動かした場合のスケーラビリティ、実行効率、およびパフォーマンスのテストを実施した。テスト環境は、ワークロード・シミュレーション・フレームワーク「DMS Clarity Studio」のADO(データベース)、MAPI(ワークフロー)、WMP(メディア再生)といったオブジェクトを用いて構築した。

 ここで驚くべき結果が出たことを報告しよう。Microsoftはマルチコアのチューニングを最適化するだけではなく、今後スケーラビリティを向上させていくストーリーも描いている。つまり、すでにWindows VistaとWindows 7は、CPUコアの数が増えるにつれ、ますますメリットを享受できるようになっているのだ。

Windows XP(SP2)

 Windows XPは簡単に消えそうにない。製品的に成熟して安定性が高く、何よりも今日のハードウェア上で非常に速く動作するからだ。実際に今回も、データベース、ワークフロー、マルチメディアの各テストにおいて、新しいWindowsよりもデュアルコアの場合で2倍、クアッドコアで最大66%高速だという結果が出た。アプリケーション・スループットについては、今もWindows XPがナンバーワンである。

 だが、リリースから7年を経たXPに翳りが見えているのも事実だ。例えば、デュアルコアからクアッドコアに変えた場合の向上比を計算すると、ADO(データベース)で最大265%、MAPI(ワークフロー)で最大32%という結果になった。それなりに優秀な結果だが、Windows 7はADOで571%、Windows VistaはMAPIで58%とさらに高い数値を記録し、これらと比較すると色褪せて見える。

 筆者の考えでは、Windows XPの老化したカーネルは、SMP対応とは言ってもマルチコアに完全に最適化されたことはない。それに対してWindows VistaとWindows 7は、チューニングやカスタマイズによってコアの増加を有効活用している。

 Windows VistaとWindows 7はスケーラビリティの面で勝っているが、今日のデュアル/クアッドコア・システムでの利用を想定すれば、やはりXPが優位であり、8コア・システムが登場してもXPの地位が脅かされることはないだろう。だが、コア数がさらに増えれば、パフォーマンスの差が縮まり、最終的に逆転するのではないだろうか。

 とは言え、当面、Windows XPは最も効率性の高い64ビットWindowsプラットフォームのポジションを維持していくだろう(Windows 2000には64ビット・エディションが存在しない)。実行効率という面で非常に優れているからだ。

 クアッドコアのテストでXPは、データベースのシングルパスに約72億、メッセージング・ワークフローのトランザクション・ループに約407億のCPUサイクルを消費した。対してWindows Vistaは各処理104億/516億CPUサイクル、Windows 7は109億/484億CPUサイクルという結果になった。つまり、新しいOSのほうがデータベース・タスクでXPより約40%、ワークフロー・タスクで約20%も効率が低いということになる。

 これは、実行パスの複雑性に起因すると筆者は考えている。Windows XPのカーネルには、DRMフックのようなパフォーマンスを損なう要因が少なく、処理の実行を指示するクリーンなパスが提供されている。そのため、XPは全体的なパフォーマンスですぐれているというわけだ。

 だが、こうしたパフォーマンスの優位性が有効なのは、現行のクアッドコア、あるいは次世代の8コアのシステムまでだと思われる。新システムの設計者が製品に並列処理を多く取り入れようとする傾向にあるなかで、Windows XPの優位性は急速に消滅していくかもしれない。

記事詳細テキストバナー

ページの先頭へ戻る