ハイパースレッドによるCPU性能向上効果検証 (Linux編)
ハイパースレッドを設定することによって、アプリケーションでは実際にどの程度の性能向上が期待できるのでしょうか。今回は、無償で利用できるベンチマークソフト「姫野ベンチマーク」(略称:姫野ベンチ)を用いて、ハイパースレッドのON/OFFによるLinuxサーバのCPU性能向上効果を検証します。
次のような実行方法で、問題サイズ「M」の姫野ベンチを4並列で実行してCPU性能を計測します。姫野ベンチのインストール手順や基本的な実行方法等は、「姫野ベンチの使用方法・測定結果一覧 (Linux編)」を参照して下さい。
姫野ベンチの実行手順
実行前の空きメモリ容量確認
姫野ベンチは実行中に大量のメモリを使用するので注意が必要です。swapが発生する環境では正確に測定できないため、実行前にfreeコマンド等で空きメモリ容量を確認した上で実行して下さい。(問題サイズ「M」を4並列で実行する場合、合計約904MBのメモリを使用します。)
$ free -m
並列実行
次のコマンドで姫野ベンチを4並列で実行します。実行時間は約1分です。
姫野ベンチの実行コマンド「./bmt」をbashの「&」(Ampersand)で連結することによって、姫野ベンチをバックグラウンドで並列実行しています。
$ ./bmt & ./bmt & ./bmt & ./bmt &
測定結果
実環境での測定結果を一覧にまとめました。測定条件等は以下の通りです。
- 他の処理が実行されていない無風時に測定
- 測定結果は5回実行した結果の中央値を「MFLOPS」値で記載
- [ nCPU ] : CPU n個 を搭載した状態で測定
- [ HT ] : ハイパースレッド(Hyper-Threading) ONの状態で測定
H/W | CPU | OS kernel | 測定結果 M MFLOPS | 測定結果 M 合計 |
ML350 G3 | Xeon 2.2GHz 512KB L2 400MHz FSB | CentOS 3.6 2.4.21-37.ELsmp gcc 3.2.3 | 87.174096 | 351.429258 |
88.005237 | ||||
88.014971 | ||||
88.234954 | ||||
[ HT ] | 109.001764 | 441.698341 (1.25倍) | ||
111.426641 | ||||
109.862498 | ||||
111.407438 | ||||
Xeon 2.2GHz 512KB L2 400MHz FSB | CentOS 4.4 2.6.9-42.ELsmp gcc 3.4.6 | 88.110097 | 352.474724 | |
88.090877 | ||||
88.115991 | ||||
88.157759 | ||||
[ HT ] | 109.836982 | 442.581003 (1.25倍) | ||
109.384153 | ||||
111.877321 | ||||
111.482547 | ||||
DL380 G4 | Xeon 3.4GHz 2MB L2 800MHz FSB | RedHat AS 3 2.4.21-37.ELsmp gcc 3.2.3 | 257.565776 | 1062.433428 |
257.715295 | ||||
257.766496 | ||||
289.385861 | ||||
[ HT ] | 265.340594 | 1091.765391 (1.02倍) | ||
264.443774 | ||||
268.974011 | ||||
293.007012 | ||||
[ 2CPU ] | 326.532089 | 1366.000458 | ||
326.431959 | ||||
349.428412 | ||||
363.607998 | ||||
[ 2CPU ] [ HT ] | 320.140866 | 1295.840465 (0.94倍) | ||
321.652420 | ||||
329.126531 | ||||
324.920648 |
ベンチマーク結果考察
ML350 G3 におけるハイパースレッド効果
- 1CPU環境において、ハイパースレッドをONに設定することによって「1.25倍」の性能向上効果を確認しました。CentOS 3.6 (2.4カーネル)、CentOS 4.4 (2.6カーネル)共に同様の結果になりました。
DL380 G4 におけるハイパースレッド効果
- ハイパースレッドON/OFFの比較では、1CPU環境においては大差無しでしたが、2CPU環境においてはハイパースレッドONで逆に性能低下が発生する結果となりました。
- 1CPU環境と2CPU環境の比較では、2CPUで「1.18~1.28倍」の性能向上を確認しました。このベンチマーク結果が示すように、CPUを増設してもアプリケーションによっては性能が2倍にならないという点には注意が必要です。
全体
- ハイパースレッドONで性能低下が発生するケースも有り、ハイパースレッドのON/OFFについては、対象サーバのOSやサーバ上で実行するソフトウェアの動作特性に応じて慎重に判断する必要があります。
- 姫野ベンチの動作特性上、CPUキャッシュやメインメモリへのアクセス競合が今回の計測結果に大きく影響していると考えられます。メモリの性能が処理速度に影響する“メモリバウンドな”性能特性を持つソフトウェアでは、類似の結果となる可能性が高いと考えられます。
関連記事
姫野ベンチの使用方法・測定結果一覧 (Windows編)
姫野ベンチの使用方法・測定結果一覧 (Linux編)
STREAMの使用方法 (Linuxメモリ帯域幅の計測方法)
HDDベンチマーク手順+性能測定結果一覧 (hdparm,dd,bonnie++)
Iperfの使用方法 (Linuxネットワーク帯域確認方法)
「Linux」カテゴリーの記事一覧
参考になるサイト
理化学研究所 情報基盤センター – 姫野ベンチマーク
姫野ベンチの公式サイト。ソースファイルの提供や実測結果の一覧も。