mac快適化の最新記事

macでハイパースレッドをON/OFFする方法と確認方法

macでインテルのハイパースレッドの利用を停止する方法をご紹介しています。

IntelのCPUを搭載したMacBook/Air/Proは、ハイパースレッドが有効になっています。
macに搭載されるIntelCPUは、2つ以上のコアがあります。
コア=物理的なCPUの数です。

Intelのハイパースレッド(HT)技術は、1つのコアで仮想的なCPUコアを増やしてくれる技術です。
インテル ハイパースレッディング・テクノロジー (インテル HT テクノロジー) は 1 つのコアで複数のスレッドを同時に実行することにより、プロセッサーのリソースをより効率的に使用します。また、プロセッサーのスループットを高め、マルチスレッド・ソフトウェアの全体的なパフォーマンスを改善します。

インテル ハイパースレッディング・テクノロジー


CPUコアは様々な演算をする機能が備わっています。通常フルに使っていないので、リソースを分けて使えるようにしたのがハイパースレッド(HT)です。

映像系の重たい処理などは、リソースをフルに使っている状態なので、
ハイパースレッドをOFFにした方が処理が早く終わることがあります。

macでハイパースレッドをON/OFFする方法


ここでは、Intel製CPU搭載Macで、macOS Sierraをご利用の方を対象としています。
(検証したmacosがSierraという理由だけです。
未検証ですが、El Capitan、Yosemite、Mavericks、Moutain Linonなどでも使える方法だと思います。)

ハイパースレッドをON/OFFするには、Xcodeのパフォーマンス測定・検証ツール Instrumentsで設定できます。
この方法には、以下2つのデメリットがあります。
  1. Xcodeをインストールする必要があります。通常4GB以上のストレージを消費します。
    App StoreからXcodeをインストールすることができます。
  2. ハイパースレッドOFFの状態は、スリープからの復帰、リブートでクリアされます。
    例えば、macを再起動するとハイパースレッドOFFから規定のONの状態になります。


それでは、ハイパースレッドをONからOFFにしてみます。
  1. Instruments.appを起動します。
    ターミナルから以下コマンドを実行してください。
    $ open /Applications/Xcode.app/Contents/Applications/Instruments.app

    Xcodeから立ち上げる方法もあります。
    Xcodeメニュー > Open Developer Tool > Instruments
    でInstrumentsを起動できます。

  2. ハイパースレッドをOFFにします。
    Instrumentsメニュー > Preferences...を選択します。

    CPUsタブを開きます。

    Hardware Multi-ThreadingのチェックがONになっていますか?
    OFFになっている場合、ハイパースレッドはOFFの状態になっています。

    チェックがついている場合、ONの状態です。チェックを外してください。
    管理者パスワードが求められます。
    macでハイパースレッドをON/OFFする方法


    Hadware Multi-ThreadingがOFFになると、
    Active processor coresの最大値が4から2に変わったことがわかります。
    (MacBook/Air/Pro13インチの場合)

    MacBook Pro 15インチの場合は、最大8から4に変化します。



再起動の必要はありません。チェックをON/OFFしたタイミングで設定が切り替わります。

ffmpeg( -vcodec libx264 )で負荷をかけながら変化を見てみました。

CPUの数が多いMid2015で確認したスクリーンショットです。
8CPUを4CPUに変更し、4CPUのみ使われることがわかります。
macでハイパースレッドをONからOFFにした結果


ちなみに、ffmpegの処理時間は、ハイパースレッドをOFFにした方が速いです。
ハイパースレッド:ONreal 0m36.204s
user 4m19.861s
sys 0m1.598s
ハイパースレッド:OFFreal 0m43.373s
user 2m40.776s
sys 0m1.315s


macbook ハイパースレッドがON/OFFなのかを確認する方法


物理的なコア数、論理的なコア数、アクティブなコア数からハイパースレッドのON/OFF状態を判断することができます。

物理的なコア数、論理的なコア数、アクティブなコア数は、sysctlコマンドを使うと得られます。

$ sysctl -a | egrep -e "hw.activecpu*|hw.logicalcpu*|hw.physicalcpu*"
hw.activecpu: 4
hw.logicalcpu_max: 4
hw.logicalcpu: 4
hw.physicalcpu_max: 2
hw.physicalcpu: 2

hw.activecpu現在アクティブなCPUコア数を意味します。
hw.logicalcpu_maxCPUの論理最大コア数を意味します。
hw.logicalcpu現在macosが認識しているコア数です
hw.physicalcpu_maxCPUの物理最大コア数です。
hw.physicalcpu現在macosが認識している物理的コア数です


ハイパースレッドをON/OFFすると変化する項目は、hw.activecpu、hw.logicalcpuです。

ハイパースレッドがOFFの状態では、Late2012は以下のような結果になります。
$ sysctl -a | egrep -e "hw.activecpu*|hw.logicalcpu*|hw.physicalcpu*"
hw.activecpu: 2
hw.logicalcpu_max: 4
hw.logicalcpu: 2
hw.physicalcpu_max: 2
hw.physicalcpu: 2

見方は色々あるかもしれませんが少ない項目で確認できるのは、以下数値を確認する方法です。
ハイパースレッドOFF:hw.logicalcpu_maxと、hw.logicalcpuが違う場合
ハイパースレッドON:hw.logicalcpu_maxと、hw.logicalcpuが同一の場合


 

 

macでハイパースレッドをON/OFFする方法と確認方法
サブコンテンツ

コメント

comments powered by Disqus

コメントシステムを利用したくない方はお問い合わせからお願いします。
2013.8.19 DISQUS(外部コメントサービス)の利用を開始しました。
Facebook, google, Twitter等のアカウントで投稿可能です。

Microsoft 365 プランの比較 icon

(Microsoft 365 Personal 2,500 円 キャッシュバック キャンペーン 実施中 2022/3/30まで)

  • 祝!初マック(mac book retina 13インチ)!retina美しいです^^マックに関係するTips、情報、はまったことの解決策等
  • Mac野郎なのか
  • プロフィール

このページの先頭へ