Quad-Core Xeon 8node 16CPU 64CPUコアをGbEスイッチで接続したクラスタで、代表的なMPI実装であるMPICHとIntel-MPIのAmber9での性能比較テスト結果が寄せられました。テストはAmber9というMDプログラムにより行われました。その結果、Intel-MPIによりQuad-Core Xeonの並列性能が良く引き出されてることがわかりました。ところが、MPICHはマルチコア計算機の並列性能を引き出しきれていません。この結果からMPICHによるテスト結果だけでQuad-Core XeonのAmber9での並列性能評価を行うと、性能を見誤る可能性が高く危険です。
この文章ではこのAmber9でのテスト結果をすこし詳しく眺めながら、MPI実装とマルチコア環境について考えてゆきたいと考えています。
テストはGbE接続のQuad-Core Xeon 2.66GHz 8node 16CPU 64CPUコア機を用いて行いました。その結果Intel-MPIによりシステムインターコネクトがGbE接続であるにもかかわらず、4node 32CPUコア並列という高い並列度で、高い並列性能が実現されました。マルチコア以前の計算機を用いてこの性能を得るには相当の費用が必要でしたから、GbE接続の4ノードのクラスタによるこの並列性能の達成は本当に素晴らしいことです。

計算機: HPC-ProServer DPe1950 8台
計算機ノードの仕様
CPU: Quad-Core Xeon (Clovertown) X5355 2.66GHz
FSB1333MHz
CPU構成: 2CPU 8CPUコア
Memory: 8GB (DDRII-667 FB-DIMM)
System HDD: SATA 250GB 7200rpm x2
OS: RedHat EL WS4 Update4 EM64T
Kernel: 2.6.9-42
開発環境: Intel-MPI 3.0, MPICH 1.2, Intel Compiler
System Interconnect: Gigabit Ethernet SW
資料: Intel-MPI 3.0の詳しい日本語の資料へリンク (エクセルソフトの製品ページが別画面で開く)
Quad-Core Xeon 8CPUコア GbEクラスタ上にて、2種類のMPI実装系、MPICHとインテルが開発したIntel-MPIでの通信性能の比較を、MDプログラムAmber9でのjacと呼ばれる計算により行った結果をグラフにしました。

青のグラフで表されているIntel-MPIを用いたシステムでは、Intel-MPIによりQuad-Core Xeonの性能が良く引き出されています。GbE接続であるにもかかわらず、4node 32CPUコアまで並列性能が得られており、8node 64CPUコア並列に至ってようやくネットワークの飽和が起こっています。さらにこれ以上の計算速度を必要とされるなら、ネットワークをInfinaBandなどに交換することで、並列性能の高速化や並列数の増大が容易に実現できます。(InfinaBandのテストも予定されています。)
もう少し部分的に観察すると、8CPUコアまでの計算はノードの内側での並列計算であり、ここで並列性能が出ています。このことから「Quad-Core Xeonではメモリ帯域が不足し8並列動作させても性能が出ないのではないか。」というお客様のご懸念の多くは杞憂に終わりそうです。これはインテルにとっては社の命運をかけた必達目標であることはインテルが最も良く認識していることであり、多くの開発リソースを開発環境の開発に投入しています。その一環としてIntel-MPIの開発も進められており、SMP環境下でのノード内MPI通信の高速化を達成させています。その成果がここに実を結んでいます。マルチコア計算機でMPI並列計算を行う場合には、たとえ1台のマシンのみで並列計算を行う場合でもIntel-MPIの利用が必須です。(HP-MPIなども性能が出ているようです。)
さらに観察を進めると、ノードを跨いだ2node 16CPUコアや4node 32CPUコア計算の領域でも、依然として性能は向上しています。これはCPUコア数が増加しても、ノード数が抑えられているため、ネットワークを経由する通信量が少なく、通信の飽和が発生しにくいためです。通信飽和は8nodeで発生し、ようやく計算性能が低下しています。
これに対して、赤のグラフのMPICHによる並列計算では、1node 8CPUコアでのノード内並列計算の段階で、既に性能劣化を起こしています。もし、お客様がこの赤のグラフのMPICHの結果しか評価されておらず、青のグラフのIntel-MPIの結果を評価されていなければ、MPI計算でのマルチコア計算機の真の性能を誤って評価してしまうことにもなりかねません。なぜなら、GbEより圧倒的に高速な筈のノードの内側でのMPI通信がよもやボトルネックになっているとは容易に想像できず、性能劣化の原因はメモリの帯域不足であると結論してもおかしくありません。その結果、Quad-Core XeonよりDual-Core Xeonが良く、さらにCore Duoのネットワーク並列機が良いという、順位づけの結論を出してしまいそうです。
Quad-Core Xeon + Intel-MPIと、Dual-Core Xeon + MPICHを比較したグラフを掲載します。これを見るとQuad-Core Xeon 8CPUコア機を4台用いた32CPUコア計算機と、Dual-Core Xeon 4CPUコアを8台用いた32CPUコア計算機では、ノード数が半分で価格も半分なのに性能は2倍も高速です。すなわち4倍のコストパフォーマンスを発揮していることになります。
Quad-Core Xeon + MPICHと、Dual-Core Xeon + MPICHの比較です。MPICHを使っているとQuad-Core Xeonが悪くDual-Core Xeonが良く見えます。MPICHだけでの評価は危険です。


Quad-Core Xeon + Intel-MPIはテストを通じて素晴らしい計算機であることがわかりました。そこで他の計算機との比較を行いました。するとHPC分野ではQuad-Core Xeon以外の選択肢は皆無に近いことがわかりました。
| ソケット数 | CPU種類 | 構成 | 寸評 |
| 1 | Core 2 Duo (Duad-Core) (Qual-Core) |
単体 | 4GBメモリのエントリー機でも、少しお金を足せばQuad-Coer Xeonが買える。 8GBメモリモデルは価格が高い。 FSBが1066MHzと遅い。 |
| クラスタ | GbE 2nodeクラスタよりはSMPのQuad-Core Xeonが良い。 GbE 4nodeクラスタでも並列ボトルネックからQuad-Core Xeonが良い。 |
||
| 2 | Dual-Core Xeon |
単体 | Quad-Core Xeonとほぼ同じ値段なのでQuad-Coreが良い。 |
| クラスタ | クラスタでは当然Quad-Core Xeonが良い。 | ||
| Quad-Core Xeon |
単体 | 良い選択。 | |
| クラスタ | 求める性能によってはInfiniBand接続も考慮。 | ||
| 2〜 | Opteron | SMP | Quad-Core Xeonの方が高速。 |
| IA-64 | SMP | Quad-Core Xeonの方が高速、価格も安い。 | |
| POWER | SMP | 性能は少し良いが、価格が高い。 |
Quad-Core Xeon 8node 64CPUコアでのInfinaBandクラスタのテスト結果を是非とも見てみたいです。また、Dual-Core XeonでのIntel-MPIによるテスト結果にも興味がわいてきます。また、インテルコンパイラ10.0を用いてのテストや、1node 4CPU 16CPUコア機のテストも予定しています。続報にご期待ください。
Quad-Core Xeonの非常に優れたソリューションQuad-Core Xeonのシステム価格はDual-Core Xeonと大差ありません。すなわち、同じコア数を導入することを考えると、コアあたりの価格はDual-Core Xeonの約半分の価格になるということです。当然、ノード数も半分、通信負荷も半分、部品点数も半分、故障率も半分、設置面積も半分、消費電力も約半分、発熱も約半分、騒音も約半分など、Quad-Core Xeonは非常に優れたソリューションです。
右の写真は参考になりそうなラッキングされたシステムの写真です。青のLEDが点灯している1Uサーバが演算ノードで、合計13ノードが綺麗に整然と実装されています。ここにQuad-Core Xeonが搭載されているとすると、2CPU x 4core x 13node = 104CPUコアがこの13Uのラックスペースに実装されていることになります。
【参考・次に行ったテストへリンク】 Intel-MPIでのQuad-Core XeonとDua-Core Xeonの比較
■ Quad-Core Xeonの静音ソリューションへリンク