ハイパースレッドによるCPU性能向上効果検証 (Linux編)

120px-Crystal_Clear_app_kalarm

ハイパースレッドによる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/WCPUOS
kernel
測定結果 M
MFLOPS
測定結果 M
合計
ML350 G3Xeon 2.2GHz
512KB L2
400MHz FSB
CentOS 3.6
2.4.21-37.ELsmp
gcc 3.2.3
87.174096351.429258
88.005237
88.014971
88.234954
[ HT ]109.001764441.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.110097352.474724
88.090877
88.115991
88.157759
[ HT ]109.836982442.581003
(1.25倍)
109.384153
111.877321
111.482547
DL380 G4Xeon 3.4GHz
2MB L2
800MHz FSB
RedHat AS 3
2.4.21-37.ELsmp
gcc 3.2.3
257.5657761062.433428
257.715295
257.766496
289.385861
[ HT ]265.3405941091.765391
(1.02倍)
264.443774
268.974011
293.007012
[ 2CPU ]326.5320891366.000458
326.431959
349.428412
363.607998
[ 2CPU ]
[ HT ]
320.1408661295.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」カテゴリーの記事一覧

参考になるサイト

理化学研究所 情報基盤センター – 姫野ベンチマーク
姫野ベンチの公式サイト。ソースファイルの提供や実測結果の一覧も。