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.
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[株式会社MatrixFlow] 「物流リソース最適化」ガイド:人員・配車・傭車を出庫依頼の確定前に決めきる -
製品資料
[株式会社キーエンス] なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは -
製品資料
[株式会社セールスフォース・ジャパン] 「CRMは設計と無関係」は本当か? PLMとの融合で実現する高速開発 -
事例
[日本ヒューレット・パッカード合同会社] AIエージェントの時代にどう備える? 「新たな働き手」を支える3要素とは -
製品資料
[日本ヒューレット・パッカード合同会社] “横並びの自動化”から脱却、AI活用で生産性と競争力を高める秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
2
法務と開発者で「言葉が通じない」問題 トヨタやソニーが語るOSS管理の真実
-
3
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
4
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
5
情シスの約8割が転職や退職を意識 調査で分かった“辞めたくなる最大の理由”
-
6
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
7
情報漏えいはなぜ繰り返されるのか 今すぐ見直すべき「境界」
-
8
「Wi-Fi 7」経由でWindowsが乗っ取られる? 最高権限奪取の恐怖
-
9
「結局使わなくなる」Microsoft 365 Copilotを半年で定着 キリンの3施策
-
10
「中堅・中小企業のネットワーク・セキュリティ運用実態」に関するアンケート
ホワイトペーパーランキング PR
-
1
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
-
4
財務部門がAIを最大限に活用する方法 無駄のない戦略的リーダーシップへの道
-
5
LLMが兵器化? 元FBI高官が鳴らす警鐘とセキュリティツール統合のポイント
-
6
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
7
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
8
生成AIを開発に導入しても効果が見えない? 実証実験で分かった成果と課題
-
9
経産省DX指針から読み解く、受発注業務デジタル化ロードマップ
-
10
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー