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
-
製品資料
[NTTインテグレーション株式会社] 取引先のセキュリティをどう管理する? 「SCS評価制度」対応の勘所を解説 -
製品資料
[NTTインテグレーション株式会社] SCS評価制度「★4」取得のカギ 最大の壁を突破する方法とは? -
製品資料
[NTTインテグレーション株式会社] 2026年度末から運用開始 「SCS評価制度」に備えて製造業がやるべきことは? -
事例
[ネットワンパートナーズ株式会社, アイビーシー株式会社] ハイブリッド環境の一元管理と快適な無線LAN環境、三井ホームはどう実現した? -
市場調査・トレンド
[TD SYNNEX株式会社] 調査で学ぶセキュリティ運用の実態 人を増やさず品質を維持する方法とは?
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
2
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
3
「ノートPC派」は損をしている? Dellと考える“自作PC”のメリット
-
4
「業務改善とツール活用」に関するアンケート
-
5
「GitHub Copilot」3000人に配布も基本機能しか使われない 保険大手が得た教訓
-
6
「データストレージの活用方法」に関するアンケート
-
7
年収700万超エンジニアに共通するスキルと「もっと勉強すべきだった分野」
-
8
業務用プリンターの老舗が挑むAI活用に向けた開発基盤変革を伴走支援
-
9
IT製品の導入に関するアンケート「PC&デバイス」編
-
10
“Intel CPU”搭載PCを危険にさらす「UEFIファームウェア」の脆弱性とは
ホワイトペーパーランキング PR
-
1
DX/AI投資の壁を突破、現代の最高財務責任者が直面する課題と克服のヒント
-
2
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
3
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
4
バックアップは“取っているから大丈夫”なのか? ランサムウェア時代の備え方
-
5
システムの保守がモダン化を阻む? 「変えない判断」から脱却する方法とは
-
6
生成AIを開発に導入しても効果が見えない? 実証実験で分かった成果と課題
-
7
経産省DX指針から読み解く、受発注業務デジタル化ロードマップ
-
8
5分で分かる Microsoft 365のデータ損失に備えるためのバックアップの仕組み
-
9
ネットワーク遅延の原因、「パケットロス」の基礎知識と効果的な解決策
-
10
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー