OSとアプリケーション
マルチコアプロセッサはデスクトップPCでも性能を発揮するか
どんなサーバでもマルチコアプロセッサの恩恵を受けることができる。しかしデスクトップPCの場合、マルチコアプロセッシングの実際的なメリットは何だろうか。
今日のPC──一般的なデスクトップPC──は、複数(2つあるいは4つ)のコアを備えたプロセッサを搭載している。その実質的な効果は小さなパッケージに2個あるいは4個のプロセッサを組み込んだものと同様であり、しかも消費電力は後者のマシンよりもずっと少ない。CPU速度が限界に達しつつある今日、CPUに複数のコアを追加するという方式が、パフォーマンスを向上するための新たな手段として脚光を浴びている。
Microsoft OfficeやWebブラウザといった標準的なアプリケーションしか使っていないユーザーの場合、マルチコアアーキテクチャで何か得をすることがあるのだろうか。短い答えで言えば「イエス」だが、マルチコアプロセッサから具体的にどういったメリットが得られるのかという点については、少し説明が必要だ。
まず、OSがマルチコアプロセッサをどのように活用するのかを理解する必要がある。マルチコアプロセッサを活用するには、OSは複数のコアを「意識する」必要があり、これらのコアはユーザーおよびシステム上で動作するプログラムからは別々のプロセッサとして見える。OSが複数のコアを意識していなければ1個のプロセッサしか「見えず」、ほかのコアはOSにもアプリケーションにも使われない(つまり無駄になる)。
Windows Vistaはそのままでマルチコアを認識
しかし今日のOSのほとんどすべて──Windows XP、Windows Vista、Windows Serverの全バージョン、Linux──は、マルチコアを認識し、利用する。Windows XPの場合は、マルチコアを認識させるにはService Pack 2以上のパッチを当てなければならないが、この条件を満たせばWindows XP Home Editionでもマルチコアを利用できる。Windows Vistaはそのままでマルチコアを認識する。カーネル2.6以上をベースとする各種Linuxディストリビューションも同様だ。
もう1つの重要なポイントは、複数の物理プロセッサ(ソケット)と比較した場合、システムがマルチコアプロセッサをどう扱うかだ。マルチソケットシステムでは、2個以上の物理プロセッサがそれぞれ別々のソケットに搭載されている。Microsoftは複数のソケットの使用に対してライセンス上の制限を設けている。Windowsの各ローエンド版は複数のコアを認識するが、2個以上の物理ソケットを認識しない。
2個の「Intel Core 2 Duo」プロセッサ(4個のコア)を搭載したPCの場合、Windows XP Professionalは両方のプロセッサおよび4個のコアすべてを認識する。しかしWindows XP Home Editionでは、1個目のプロセッサおよびその2個のコアしか認識できない。Windows Vista Homeの各エディションは1個のソケットしかサポートしないが、マルチコアをサポートする。Windows Vista BusinessとWindows Vista Ultimateは最大2個のソケットをサポートする。
ちなみに、複数のコアあるいはプロセッサを搭載したシステム上で動作するソフトウェアのライセンスに関するMicrosoftの全般的なポリシーは、各Microsoft製品をコア単位ではなくソケット単位でライセンスする。つまり、将来8コアを搭載したシングルプロセッサマシンが登場した場合、Windows XP Home Editionでも8個のコアすべてを利用できるということだ。Microsoftはマルチコアプロセッシングがデスクトップレベルでも標準仕様になると予想しており、それに応じてライセンスポリシーも変更したのだ。同社では、OSだけでなくほかのソフトウェア製品でも同じライセンスポリシーを採用している。例えば、Microsoft SQL Serverはコア単位ではなくソケット単位でライセンスされている。
パフォーマンスの向上とマルチスレッド処理のメリット
OSの次に重要な要素はアプリケーションだ。ユーザーがマルチコアから直接的なメリットが得られるのもこの部分だ。複数のアプリケーションを同時に動作させたときに優れたパフォーマンスが得られる。
もう1つのメリットは、マルチスレッドで動作するプログラムであれば、各スレッドを別々のコアで処理できるということだ。例えば、標準的な音楽プレーヤーソフトは音楽をリッピングしながら(1スレッドを使用)、別の曲を再生し(別のスレッドを使用)、ときどきライブラリフォルダを監視して変更の有無をチェックする(さらに別のスレッドを使用)といった処理を実行するかもしれない。これらのスレッドの中には、ライブラリ監視スレッドのように受動的に動作するものもある。時折動作するだけだったり、動作するときでもCPUをほんのわずかしか使用しないのだ。
既存のWindowsアプリケーションのほとんどは、少なくともある程度の「マルチスレッド性」を備えている。マルチスレッドに対応しているとは思えないようなアプリケーションの中にも、実際には複数のスレッドで動作するものがある。例えば、Microsoft Wordはユーザーが文字を入力しているときに、バックグラウンドでスペルチェックを行ったり文書のページ番号を付けたりするのに複数のスレッドを使用している。プログラム内で並列化する(お互いに相手の足を踏まないように並んで走る)ことができる一連の処理が多ければ多いほど、マルチコアシステムでの動作のパフォーマンスは高くなる。
マルチスレッディングの問題は、複数のスレッドに分割しにくいタイプの作業があることだ。その一例が、ビデオやオーディオの圧縮だ。この種の作業に対しては「時間依存性」という用語が使われる。これは、データのある部分のエンコーディングが前の部分のデータに依存するため、1つのスレッド内で始まりから終わりに向けてエンコードする必要があることを意味する。だがこういったケースでも、コアが複数ある方が効果的だ。1つのコアがエンコーディング作業を受け持ち、残りのコアをほかの作業用に残しておくことができるからだ。
理論上は、一部の時間依存型の処理をマルチコアあるいはマルチプロセッサ用に最適化することは可能だ。例えば、DVDに記録する際にデータを圧縮するという処理では、ビデオとオーディオを別々に圧縮できる。しかし後でこれらを同期化し直す必要があるため、オーディオとビデオを並列処理で圧縮したことで得られたパフォーマンス面でのメリットが帳消しになる可能性がある。このような制約を受けるデスクトップアプリケーションは少ないが、そういったアプリケーションではシステム内の1個のコアの処理能力を上回るパフォーマンスを期待することはできない。
アプリケーションパフォーマンスとデスクトップの応答性の向上
平均的なユーザーの場合、マルチコアマシンを使用すればパフォーマンスの大幅な向上を実感できるだろう。最近のOSとアプリケーションを使っている場合はなおさらそうだ。特に、アプリケーションのパフォーマンスとデスクトップの応答性が向上する。複数のプログラムを同時に実行する場合も同様にパフォーマンスが向上する。
しかしあらゆるアプリケーションが等しく恩恵を受けるわけではない。ビデオ圧縮などの時間依存型処理をマルチコア環境でいかに効率的に動作させるかというのは、マルチコアやマルチプロセッサが一般化してきた世界に対応しなければならなくなったプログラマーが直面している問題だ。
この分野での取り組みも進んでいる。Intelは、マルチコアシステム上でのビデオエンコーティングを最適化するプログラミング手法に関するホワイトペーパーを発行した。さらに同社は、「Threading Building Blocks 2.0」(マルチコア用に最適化されたC++のプログラミングライブラリ)を、誰でも利用できるGPLv2でリリースした。しかし、現時点でも一般的なユーザーがすぐに得られる実際的メリットが十分にあるため、デュアルコア/マルチコアプロセッシングが決して無駄になることはないだろう。
本稿筆者のサーダー・イェグラルプ氏は、Windows NT、Windows 2000、Windows XP、Windows Server 2003、Windows Vistaのユーザーおよび管理者向けのヒント、Tips、裏技、ニュースなどを中心としたブログサイト「Windows Insight」(旧名称は「Windows Power Users Newsletter」)の編集者である。Windows分野で12年以上の経験を持ち、米国版TechTargetサイトに定期的に寄稿している。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
4
221人調査で分かった「情シス最大のストレス」は?
-
5
「データストレージの活用方法」に関するアンケート
-
6
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
7
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
-
8
本当に安いPCで十分か? “すぐ重くなる”を防ぐノートPC選びの絶対条件
-
9
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
10
Claudeの不可視透かしに批判殺到 著作権消失や誤判定に潜む企業リスク
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー