お問い合わせ | 導入事例 | HPC計算機 | 管理サーバ/ファイルサーバ | オプション | OS/開発環境 | アプリ | システム構築 | サポート | FAQ | ベンチ | 技術情報 | 購入案内

ScaleMP vSMPの性能を調査

仮想メモリ共有型並列処理環境ミドルウェア
"vSMP" で構築する大型の仮想SMP計算機を
SPECfpベンチ結果を引用して調査
(11/10/31〜11/11/10)

大型SMP機とネットワーク並列機の下克上

 約10年前までHPC計算機の主流は、大型メモリ共有型並列計算機 (以下、大型SMP機) でした。しかし大型SMP機にはコストパフォーマンスに問題があり、しばらくすると勃興してきたネットワーク型並列計算機 (以下、ネットワーク並列機) に主役の座を譲りました。その前後の状況を調べながら、現代の技術を用いて再評価したいと考えています。

仮想SMP機とネットワーク並列機にハードウェアの差はない

 大型SMP機は複数の計算機を専用ネットワークで接続し、その上に仮想的なメモリ共有型並列処理環境をもたらすミドルウェアを搭載することで、仮想メモリ共有型並列計算機 (仮想SMP機) を実現するシステムです。

 これに対してネットワーク並列機は複数の計算機を汎用ネットワークで接続し、その上にネットワーク並列処理環境をもたらすミドルウェアを搭載することで、ネットワーク並列計算機を実現するシステムです。

 両者を比較するとハードウェアに差はありません。

仮想SMP機とネットワーク並列機はミドルウェアの機能に差がある

 両者のハードウェアに差がないとすると、差は搭載しているミドルウェアにある筈です。そこでその差を探します。

 仮想SMP機に搭載されているミドルウェアは、OSよりも下の階層で動作しています。このミドルウェアは、物理的に分散されたメモリ空間をネットワークで接続されたものを、仮想的に単一のメモリ空間にします。すると、分散しているプロセッサもこの仮想メモリ空間を共有することによって、仮想メモリ共有型並列計算機として機能することになります。このシステムイメージがOSに引き渡され、それがユーザに提供され、仮想SMP並列計算機として機能するわけです。この環境を使うメリットは、プログラムをネットワーク並列化しなくても、複数の計算機による並列処理や、大容量メモリを必要とする処理を実行できることです。

 これに対してネットワーク並列機に搭載されているミドルウェアは、OSの上で動作する単純な通信ライブラリにすぎません。このミドルウェアは、物理的に分散された各計算機の間のデータ転送と並列計算を、ユーザプログラムの中から処理させることができるだけの原始的な機能しかありません。もしユーザが並列処理や大容量メモリ処理をしようとすると、プログラムの中で通信ライブラリを呼び出し、データ転送や並列計算を細かくプログラミングしなければなりません。ユーザにはプログラム開発の大きな負担がかかります。

 このように両者のミドルウェアの機能を比較すると、そこには大きな機能の差があり、片方はユーザの負担が少なく、片方はユーザの負担が多いという違いがあります。

仮想SMP機とネットワーク並列機のコスト構造の違い

 さらに両者はコスト構造が違います。仮想SMP機に搭載されているミドルウェアは、高度な情報処理を行い、ソフトウェア構造が複雑で、開発コストが高く、移植が難しくし、動作するプラットホームも限られ、それがコストパフォーマンスの低めています。これが仮想SMP機がHPC分野で利用されなくなった原因です。

 これに対して、ネットワーク並列機に搭載されているミドルウェアは、OS上で動作する簡単な通信ライブラリにすぎず、ソフトウェア構造が簡単で、開発コストが低く、移植が易しく、動作するプラットホームの幅が広く、それがコストパフォーマンスを高めています。これが仮想SMP機がHPC分野で利用される原因です。

仮想SMP機の復権の条件

 しかし、ネットワーク並列機が伸びているからといって、仮想SMP機が衰えたわけではありません。仮想SMP機は、その長所である巨大なメモリ空間、メモリバンド幅の広さ、演算性能高さなどのバランスが良く、システムとして使いやすいため、値段が高くても一部の分野で支持されているのです。

 ではこのシステムとして使いやすい仮想SMP機がHPC分野で再び使われるようになるためにはどのような課題を克服すればよいのでしょうか。それは簡単なことで、コストパフォーマンスが高いx86-Linux機で仮想SMP環境を実現するミドルウェアが安価に導入できるようになれは良いのです。

x86-Linux機上で仮想SMP機を実現するミドルウェア "vSMP"

 世の中にはこの要求に沿って開発された製品があります。それはScaleMP社製のvSMPというミドルウェア製品です。この製品はx86-Linux機で仮想SMP機を実現するためのミドルウェアです。InfiniBandで接続された複数のx86-Linux機上にvSMPミドルウェアを導入すると、分散されたメモリ空間が仮想的に単一メモリ空間に結合され、仮想SMP機として利用できるようになります。

仮想SMP機の心配ごと

 ところで一般的に、仮想SMP機のような複雑な仕組みのシステムをHPCで利用すると、負荷の大きさから動作が不安定になる可能性があります。しかしScaleMP社のvSMPは発売されてから時間が経ち熟成が進んでいるため安定した動作が期待できます。そのうえ、使用できるハードウェアはScaleMP社が認定した製品に限られているため、ハードウェアとの相性問題も考慮されているので安心できます。

認定ハードウェア
HPC-ProServer DPe C6100, C2100
HPC-ProServer DPe M600, M610, M710
HPC-ProServer DPe R410, R610, R710, R910

SPECベンチマークテストに仮想SMP機のテスト結果が公開されていた

 また、仮想SMP機のような使用例の少ない計算機をHPC計算機として導入する場合は、事前の性能評価が不可欠です。幸いにもSPECベンチマークテストの公式サイトを調べると、ScaleMP社製のvSMPを利用したシステムによるSPECfp2006 baseのベンチマークテスト結果が3例ほど公開されています。これらのテスト結果を確認することで、安定稼働状況の確認と性能評価を同時に行うことができます。

SPECべチマークテストとはなにか

 ご存じのようにSPECべチマークテストは専門の委員会によって厳格に運用されている業界標準のべチンマークテストです。なかでもHPCについてのベンチマークテストはSPECfp 2006として有名です。SPECfp 2006はHPC分野を代表する17本のアプリケーションソフトで構成されています。計算機をテストする際は、テストする計算機を用いてアプリケーションをソースコードから無改造でコンパイルし、それを用いてテトスしなければなりません。そのため現実的な計算機の評価が可能です。

シリアル性能を評価するSPECfpと、スループット性能を評価するSPECfp baseの解説

 SPECfp 2006はさらに内部で、計算機のシリアル性能を評価するSPECfpと、のスループット性能を評価するSPECfp baseとの2本立てになっています。るSPECfp 2006は17本のアプリケーションのシリアル処理性能だけを評価する基本的なテストです。これに対してSPECfp2006 baseは17本のアプリケーションのそれぞれについて、対象となる計算機でスループットが最大になるように複数のシリアルジョブを同時平行処理させ、その処理時間からスループット性能を求める、深く踏み込んだテストです。

SPECfp baseの利用方法

 SPECfp baseの結果を見ると計算機のボトルネックの発生状況がよくわかります。もし計算機にボトルネックがあると実際に得られたスループット性能の理想値よりも低下します。この割合がボトルネックだと考えることができます。また、仮想SMP機の場合も仮想メモリ通信にボトルネックがあると実効値は理想値よれも低下します。この割合がボトルネックだと考えることができます。しかもこの結果はアプリケーションごとに得られるので計算機のアプリケーションとの適性までわかります。

引用したSPECのテストデータの説明

 SPECの公式サイトで公開されているScaleMP社製vSMPを搭載した仮想SMP機のベンチマークテスト結果は、Xeonプロセッサによるものが4ノードと16ノードの2例、Opteronプロセッサによるものが4ノードの1例、合計3例公開されています。

システム プロセッサ
動作周波数
(GHz)
ノード数 プロセッサ数 コア数 総演算性能
(GFLOPS)
総メモリ帯域幅
(GB/s)
基準機 45nm Nehalem Xeon X5570 2.93 1 2 8 95 64
32nm Westmere Xeon X5670 2.93 1 2 12 140 64
45nm Nehalem-EX Xeon X7560 2.26 1 4 32 289 170
32nm Westmere-EX Xeon E7-4870 2.40 1 4 40 384 170
vSMP 45nm Nehalem Xeon X5570 2.93 4 16 32 380 256
vSMP 45nm Nehalem Xeon X5570 2.93 16 32 128 1520 1024
Opteron 6174 2.20 1 4 48 422 170
vSMP Opteron 6174 2.20 4 16 192 1688 680

引用結果をグラフ化

 これら3例の性能を相対的に評価するため、グラフの基準点をNehalem Xeon X5570 2.93GHz 2CPU機とし、この計算機の性能を100パーセントとして他の計算機のアプリケーション別の性能向上率をグラフ化しています。グラフに掲載した計算機の構成は次の表のとおりです。

 またグラフを見やすくするため2種類の補助線を追加しています。赤太破線は総演算性能を示す補助線です。青太破線は総メモリ性能を示す補助線です。

基準機Xeon X5570 1node 2CPU機と
4ノードの仮想SMP機v-SMP Xeon X5570 4node 8CPU機と
16ノードの想SMP機 v-SMP Xeon X5570 16node 32CPU機を比較

 4ノードの仮想SMP機 v-SMP Xeon X5570 4node 8CPU機は、CPU律速型アプリケーションでも約400パーセントの性能向上率を記録し、メモリ性能律速型アプリケーションでも約300パーセントの性能向上率を記録しています。さらに16ノードの想SMP機 v-SMP Xeon X5570 16node 32CPU機では、CPU律速型アプリケーションでも約1500パーセントの性能向上率を記録し、メモリ性能律速型アプリケーションでも約1300パーセントの性能向上率を記録しています。この結果から、vSMP仮想SMP機は、CPU性能律速型アプリケーションではボトルネックが皆無に近いことがわかります。メモリ性能律速型アプリケーションでもボトルネックは僅かなことがわかります。しかもメモリ性能律速型アプリケーションでのボトルネックは4ノード機でも16ノード機でも同じような割合で発生していることからノード数を増やしてもボトルネックが急激に増えないことがわかります。vSMP仮想SMP機のスケーラビリティーは非常に高いことがわかります。

4ソケットのXeon E7-4870 2.40GHz 1node 4CPU 40-core機と
4ノードの仮想SMP機 v-SMP Xeon X5570 2.93GHz 4node 8CPU 32-core機を比較

 4ソケットのXeon E7-4870 2.40GHz 1node 4CPU 40-core機と、4ノードの仮想SMP機 v-SMP Xeon X5570 2.93GHz 4node 8CPU 32-core機との比較です。プロセッサ数は4基と8基と大差ですが、コア数は40コアと32コアと小差となり、理論演算性能は384ギガフロップスと380ギガフロップスと同一になっています。赤線で示したCPU性能律速型アプリケーションでの両者のスループット性能を比較すると、もちろん両者の結果はほぼ同じです。次に、青線で示したメモリ性能律速型アプリケーションで両者を評価すると、両者の総理論メモリ性能は、Xeon E7-4870が170ギガバイト/秒、4ノードのXeon X5570が256ギガバイト/秒と異なりますが、実効値はほぼ同じような性能を示しています。Xeon E7-4870はメモリ利用効率が高く、Xeon X5570はそれが低い特性を持ち、それがこのうよな結果になっているようです。このことからメモリ性能律速型アプリケーションを利用する場合は4ソケットで実現出来る性能で満足できるのであれば、4ソケット機が優れています。仮想SMP機が価値を持つのは、4ソケット機以上の性能を求める場合です。

Xeon 4ソケット機と
Opteron 4ソケット機を比較
(基本的な特性の把握)

 Opteronは4ソケット機が廉価なため、vSMP仮想SMP機も4ソケット機による構成です。最初にXeon 4ソケット機とOpteron 4ソケット機を比べます。CPU律速型のアプリケーションは理論性能はOpteronが良いのですが、実効性能はOpteronは良くありません。しかしメモリ性能律速型のアプリケーションの実効性能はOpteronもXeon並みです。アプリケーションの種類によって計算機の相対性能が異なることに注意が必要です。さらに価格を考慮するとOpteronは廉価なので、メモリ性能律速型アプリケーションのコストパフォーマンスはOpteronの圧勝です。

Opteron 4ソケット機と
仮想SMP環境のv-SMP Xeon X5570 2.93GHz 4node 8CPU 32-core機を比較

 Opteron 4ソケット機と仮想SMP環境のv-SMP Xeon X5570 2.93GHz 4node 8CPU 32-core機を比較します。おおまかに見ると両者の性能は同水準です。すると廉価な4ソケットのOpteronの圧勝です。

仮想SMP機のv-SMP Opteron 6174 2.20GHz 4node 16CPU 192-core機と
仮想SMP機のv-SMP Xeon X5570 16node 32CPU 128-core機を比較

 仮想SMP機のv-SMP Opteron 6174 2.20GHz 4node 16CPU 192-coreと、仮想SMP機のv-SMP Xeon X5570 16node 32CPU 128-core機を比較します。両者はCPU数が違うので直接の比較はできません。そこでXeonのノード数を半分と仮定して比較するとOpteronの方が性能が上です。Opteronの方が廉価ですから、ここでもOpteronの圧勝です。

仮想SMP機が価値を発揮するのは
メモリ共有環境が必須の4ソケットが対応できない性能領域

 以上のように見てくると、仮想SMP機が価値を持つのはメモリ共有環境が必須の4ソケットが対応できない性能領域の場合に限られます。そしてコストパフォーマンスを重視するなら4ソケットOpteronを組み合わせた仮想メモリ共有型並列処理計算機が優れています。しかし実績と効率を重視するなら2ソケットできれば4ソケットXeonによる仮想メモリ共有型並列処理計算機も優れています。

大きなメモリ容量が必要な場合のシステム構成の注意点

 メモリ容量を基準にシステム構成を考えると、巨大なメモリ容量が必要とする場合でも、大容量メモリを搭載した少数の計算機による構成よりも、小容量メモリを搭載した多数の計算機による構成の方が、大きなメモリバンド幅とCPU性能を得られるため優れた構成になります。システムを構成する場合はこの点に注意が必要です。

メモリ性能が必要な場合のシステム構成の注意点

 メモリ性能律速型アプリケーションを基準にシステム構成を考えると、このようなアプリケーションを利用する場合は、既に単体計算機の段階でメモリ帯域幅が大きく不足していますから、クロック速度の高いプロセッサを搭載することに大きな意味はありません。それよりもその費用をノード数の増加に使い、メモリ帯域幅を稼いだ構成にする方が性能向上に貢献します。

CPU性能が必要な場合のシステム構成の注意点

 CPU性能律速型アプリケーションを基準にシステム構成を考えると、このようなアプリケーションを利用する場合は、システム全体の演算性能の大きさが最大になるようなシステム構成が求められます。すなわちクロック速度とコア数の積が最大になるような構成です。

備考

 なお、今回のvSMPのテストに使用されているXeonプロセッサは、前世代のNehalem Xeonプロセッサです。これを最新のWestmereプロセッサに置き換えると約50パーセントのCPU性能向上が期待できます。

データ引用先

上記グラフはSPEC CFP2006に公開されている資料を参照して作成しています。

SPEC CFP2006で利用されている浮動小数点演算アプリケーションの一覧。
(公開されているSPEC CFP2006より転記しています。)

bwaves (Fortran) : Computational Fluid Dynamics
gamess (Fortran) : Quantum chemical computations
milc (C) : Physics/Quantum Chromodynamics
zeusmp (Fortran) : Physics/Magnetohydrodynamics
gromacs (Fortran and C) : Chemistry/Molecular Dynamics
cactusADM (Fortran and C) : Physics/General Relativity
leslie3d (Fortran) : Computational Fluid Dynamics
namd (C++) : Classical Molecular Dynamics Simulation
dealII (C++) : Adaptive Finite Element Method
soplex (C++) : Simplex Linear Program (LP) Solver
povray (C++) : Computer Visualization
calculix (Fortran and C) : Structural Mechanics
GemsFDTD (Fortran) : Computational Electromagnetics
tonto (Fortran) : Quantum Crystallography
lbm (C) : Computational Fluid Dynmaics
wrf (Fortran and C) : Weather Forecasting
sphinx3 (C) : Speech Recognition

本サイト記載の会社名および製品名は、それぞれ各社の商標または登録商標です。

【SPEC CPU2006の公開データを資料として引用】

SPEC, SPECint and SPECfp are resistered trademarks of the Standard Performance Evaluation Corporation. For more information on this SPEC benchmarks see www.spe.org. SPEC and the benchmark name SPEC CPU2006 are registered trademarks of the Standard Performance Evaluation Corporation. Competitive benchmark results stated above reflect results published on www.spec.org as of March, 2010. The comparison presented above is based on the best performing 2-cpuand 4-cpu servers currently shipping by Dell Inc. For the latest SPEC CPU2006 benchmark results, visit http://www.spec.org/cpu2006/