Windows 7 で Core Parking を利用する方法

日経ソフトウエアで連載中の「どこが変わるの!? Windows 7 プログラミング」最終回でも Windows 7, Windows Server 2008 R2 で強化された省電力機能について取り上げましたが、それに関連して Windows 7 で Core Parking (コア保留)を有効にする方法を取り上げたいと思います。

Core Parking とは、負荷がそれほど高くない場合に全ての CPUコアを利用せず、不必要なコアを”保留状態”にして使用しているコアを減らし、電力を削減する機能です。
Windows 7 はクライアントOS であるため、負荷の上昇に対してなるべく早く高性能状態へ移行する目的で Core Parkingに関する設定は既定ではオフになっています。

しかし、私もそうなのですが PCをつけっぱなしで運用しているけれど外出時にはより省電力状態で運用したい、そんな方もおられると思います。
そこで今回は Windows 7 で Core Parking を利用する裏技について紹介します。

CPU を含め、Windows 7 における電力設定は全て HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\ 以下に記述があるのですが、電源のオプションで表示されない設定が数多くあることはあまり知られていません。

power_settings

CPU の電力制御に関係する HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00 以下を覗いてみると、

hidden_settings

上の図のように、Attributes (REG_DWORD) が 0x00000001 に設定され、表示されていないものが数多く存在することがわかります。

それでは、Core Parking を有効にするため、いくつかの設定を変更してみましょう。

HKLM\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\ 以下

0cc5b647-c1df-4637-891a-dec35c318583
3b04d4fd-1cc7-4f23-ab1c-d1337819c4bb
447235c7-6a8d-4cc0-8e24-9eaf70b96e2b
5d76a2ca-e8c0-402f-a133-2158492d58ad
a55612aa-f624-42c6-a443-7397d064c04f
ea062031-0e34-4ff1-9b6d-eb1059334028

内の、”Attributes” を “_Attributes” と名前を変更すると、

power_options

と、設定が増えます。(英語版ですみません…)

ここで、Processor performance core parking min cores を 1/(コアの個数) …Dual Core なら 50%, Quad Core なら 25% に、
Allow Throttle States を On に、Processor idle disable を Enable idle に、Processor performance core parking core override を Disabled に、
Processor performance core parking max cores を 1 - 1/(コアの個数) …Dual Core なら 50%, Quad Core なら 75% に設定します。

(後で Language pack を入れて日本語に書き直すかもしれません)

その設定を適用すると、

resource_monitor

このように、Core Parking によって CPU が片方 (当方 Dual Core環境なため)保留状態になります。
Quad Core環境だが、外出時に使用コア数を減らしたいといった方にお勧めです。

あ、お決まりのセリフですが、

警告 : レジストリ エディタまたは別の方法を使用してレジストリを誤って変更すると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの再インストールが必要になることがあります。マイクロソフトは、レジストリの変更により発生した問題に関しては、一切責任を負わないものとします。レジストリの変更は、自己の責任において行ってください。

ということで、自己責任で行ってくださいね。

追記: 近いうちにこの辺をいじるツールをこっそり公開する予定です。