ビジネス課題への解決策(アイディア)と、新たな発想(+α)が見つかるIT情報メディア

Menu
  1. TOP
  2. データ活用
  3. 並列処理の話(その4) ハイパースレッディング・テクノロジー

並列処理の話(その4) ハイパースレッディング・テクノロジー

  • LINEで送る
  • このエントリーをはてなブックマークに追加

今回は、ハイパースレッドの話をしましょう。

「ハイパースレッディング・テクノロジー」とは、インテルがCPUコアを効率よく使用するために提供している手法です。

Core i7をCPUにPCは、4つの物理コアを持ちますが、Windowsのタスクマネージャーで見ると、あたかも8つのCPUコアが存在するように見えます。このうち4つのコアがハイパースレッディングの論理コアになります。

詳細な説明は前記リンクのWikipediaに譲りますが(非常に簡潔にわかりやすく書いてあるので感激しました)、
簡単に言うと、インテルのハイパースレッドはひとつのコアを論理的に2つに見せて、通常は同時に動かない整数演算の回路と浮動小数点演算回路が2つのコアでそれぞれ同時に要求されたときだけ性能が2倍になります。しかしその他の回路は共有ですので、その性能は1CPU時の1.2~1.4倍程度だそうです。

特にGUIを多用するWindows等のクライアントPCでは効率がよいため実装されているマシンが多いのですが、例えばCore-i7で8つのCPUが見える場合、8つのプロセスを並列で実行してもよいものでしょうか?

答えは否です。

8つのCPUコアがみえていても、そのうつ4つは仮想ですので、6本のプログラムが最大のパフォーマンスで動作することはできません。プログラム以外にOSや他のアプリもCPUを使用しますから、4プロセスを限度に考えた方がよいと私は考えます。

Core i7のマシンを専用の仮想マシンとして動作させた場合などは、BIOSでハイパースレッディングをOFFにする例も多いです。
Windowsの2003ぐらいまでは、OSのCPUコア数のレポートでは、ハイパースレッドと物理コアの区別がありませんでした。しかし、いまではきちんとOSからハイパースレッドの数が返ってきます。しかし、VM:仮想マシンの場合はそうは行きません。 「VMWare」は仮想マシンに割り当てられたCPUコアを、物理コアとしてゲストマシンにレポートしますから、きちんとハイパースレッドのコアを意識して動作するSQL Serverなどは、本来の性能が出せないのです。

C:>ProcessInfo64
NUMA node: 1
Physical processor package: 1
Processor core: 4
Logical processor: 8
C:>

(自作プログラムによるCPUレポート)

先日、あるデモの際に、Windows Server 2012でハイパースレッド抜きの合計64コアのCPUを積んだマシンのタスクマネージャを見ましたが、なんと、あのCorei7で横に8個並ぶCPUグラフが8個×8段並んでいました。

昔、「80286」だったか、2CPU搭載可能なPC9821を買って、2CPUにするために秋葉原で部品を探し回ったのを思い出し、技術の進歩に唖然とした次第です。


関連コンテンツ

並列処理の話(その1) ~変換処理の並行動作について(後編)~

並列処理の話(その2) Windowsでコマンドを並列実行する(前編)

並列処理の話(その2) Windowsでコマンドを並列実行する(後編)

並列処理の話(その3) 並列処理の種類


追記:Waha! Transformer 製品サイトの関連コンテンツ

Waha! Transformer の動作プラットフォーム


データの抽出や加工、連携にお悩みではありませんか?

20年以上の実績に裏打ちされた信頼のデータ連携ツール「Waha! Transformer」で、自社に眠るデータを有効活用。まずは無料のハンズオンセミナーや体験版で効果を実感していただけます。

> 純国産ETLツール「Waha! Transformer」

Waha! Transformer
メールマガジンの登録はこちらから
メルマガ登録 お問い合わせ