Power7のマルチスレッディング「SMT」は4スレッド!
Power7のマルチスレッディング機構
Power7のCPUにはSMT(Simultaneous Multithreading)という機構を実装しています。1つのCPUで複数スレッドを実行する機構ですが、Power7は4つのスレッドを同時に実行することができます。
CPUの中身は複数モジュールの集合体なのですが、処理しているときは実は全てのモジュールを使用しているわけではなく、必要な部分だけが使われています。つまり、1スレッドを処理しているときに、空きモジュールが存在しているわけです。
この空きモジュールを有効に使って、スレッドをマルチで処理する技術が「SMT」です。
Power6までは同時2スレッドだったのですが、Power7からは同時4スレッドになりました。
このSMTですが、AIXで有効・無効を設定することができます。
ただ、無効にするメリットは何もないと思います。
SMTをAIXで確認する方法
smtctlというコマンドで確認できます。
[root@server01:/] smtctl このシステムは SMT 対応です。 このシステムはプロセッサーにつき、最大 4 件の SMT スレッドをサポートします。 現在、SMT は使用可能です。 SMT ブート・モードが設定されていません。 SMT スレッドは、同じ物理プロセッサーにバインドされます。 proc0 には 4 個の SMT スレッドがあります。 バインド・プロセッサー 0 は proc0 でバインドされます。 バインド・プロセッサー 1 は proc0 でバインドされます。 バインド・プロセッサー 2 は proc0 でバインドされます。 バインド・プロセッサー 3 は proc0 でバインドされます。 proc4 には 4 個の SMT スレッドがあります。 バインド・プロセッサー 4 は proc4 でバインドされます。 バインド・プロセッサー 5 は proc4 でバインドされます。 バインド・プロセッサー 6 は proc4 でバインドされます。 バインド・プロセッサー 7 は proc4 でバインドされます。 [root@server01:/]
物理CPUコアは「proc0」と「proc4」で、CPUは2コアです。
SMTが有効なので、1コアで4スレッドで2コアなので、AIXはCPUを8コアと認識していることになります。
Power7は高速な上にSMTが4なので、とても高性能なCPUです。CPU負荷が高い処理では、かなりのパフォーマンス向上が期待できます。
ちなみに、SMTを無効化する場合のコマンドはこれです。
$ smtctl -m 'off' -w now