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

Xeon(R) (Nehalem Microarchitecture) の基本性能調査をSPEC CFP2006を用いて実施

Xeon (Nehalem) | Xeon (Nehalem) 1066MHzと1333MHzメモリ | Core(TM) i7 | OS別コンパイラ
歴代CPU | Xeon(R) | AMD Opteron(TM)-Xeon(R) | AMD Opteron(TM) | AMD Opteron(TM)整数演算
ハイパースレッド | QPI | STREAM | STREAMグラフ | 並列処理の階層化

超高速CPU間通信技術「QPI」の実際 (09.5.13)

Nehalem 2CPU機は166GB/sの総合理論通信帯域を実現

 新Xeon(R)に採用されているNehalemマイクロアーキテクチャの大きな特徴は、CPUと外部デバイスの接続に「QuickPath Interconnect」 (以下 "QPI" と略) と呼ばれる、最大26GB/sの通信帯域を持ち、ピアツーピア接続を基本とする、デバイス間通信技術を採用していることです。その簡単な模式図をXeon(R) (Nehalem) 2ソケット機について作成しました。図ではQPIとメモリポートを赤色で表示しました。するとCPUには3系統の独立した超高速のポートを持ち、合計84GB/sもの広大な通信帯域を利用できることがわかります。この帯域を、他のCPUとの通信用に26GB/s、メモリとの通信用に32GB/s、PCIバスとの通信用に26GB/sが割り当てられており、相互に独立しているため競合を起こすことなく高速に通信が行えます。

 このCPU間に搭載されているQPIがその威力を発揮すると期待される場面は2つあります。最初に期待されるのは、OpenMPや並列化数値演算ライブラリなどを用いて細粒度の並列処理が行われる場合の並列化効率の低下防止です。今後の性能向上は、コア数の増加が基本となり32コア級のサーバ製品も予想され、この計算機の並列演算ではQPIは必要不可欠な技術になると考えられます。

 次に期待されるのは、プロセスが要求するメモリサイズが大きくなり、ローカルのメモリ空間が不足し、リモートメモリを必要とする場合です。そのような場合でも高速なQPI接続により、リモートメモリがローカルメモリ並みの速度で利用できれば問題ありません。QPIはそれを期待させる理論性能を持っています。

 

Xeon(R) (Nehalem) 2ソケット機の模式図

 

nehalem

 

前世代Xeon(R) (Core MA) 2CPU機の総合理論通信帯域は22GB/s

 参考のため、以下に前世代のXeon(R) (Coreマイクロアーキテクチャ) 2ソケット機についても模式図を掲載しました。図を見ると、CPUの内部が2つに分断されており、Core0とCore2は左のキャッシュを共有し、Core1とCore3は右のキャッシュを共有しており高速な通信が期待できますが、分断された境界性を越えての相互通信は、CPUの外部に出てFSBとチップセットを経由した通信が必要なため、十分な通信性能が得られないことが予想されます。さらに、全てのCPUコアが同時にメモリアクセスを行うと、FSBの帯域不足が懸念されます。実際、前世代のXeon(R)にて「メモリ性能律速型アプリケーション」を平行動作させるとメモリ帯域不足から性能が失速する現象が確認されています。 

 

Xeon(R) (Core MA) 2ソケット機の模式図

 

corema

 

QPIの通信性能をOpenMPIによるMPIのコア間通信で確認

 このQPIの通信性能を確認するため、OpenMPIを用いたMPI通信により、指定した2個のCPUコア間の通信帯域とレイテンシーを測定するプログラムを用いて通信性能を測定しました。測定に用いた計算機と、テストのパターンを以下に示します。

 

■ テストに用いた計算機

 

○ Nehalem

CPU : Intel(R) Xeon(R) X5570 2.93GHz (Nehalem マイクロアーキテクチャ)
QPI : 25.6GB/s
Mem : 24GB 1333MHz
OS : CentOS 5.3 2.6.18-128.1.6.el5
MPI : OpenMPI 1.3.2
Compiler : Intel(R) C++ 11.0.083

○ Core MA

CPU : Intel(R) Xeon(R) X5460 3.16GHz (Core マイクロアーキテクチャ)
FSB : 1333MHz
Mem : 8GB DDR2 667MHz
OS : CentOS 4.5 2.6.9-67.0.15.plus.c4largesmp
MPI : OpenMPI 1.3.2
Compiler : Intel(R) C++ 11.0.083

 

■ テストパターン

rank0とrank1の間でデータサイズを変えながら通信帯域とレイテンシーを測定します。

 

○ Nehalemでの通信経路

・CPU内通信 (共有キャッシュ経由)
 rank0: CPU0 Core0
 rank1: CPU0 Core1

・CPU間通信 (QPI経由)
 rank0: CPU0 Core0
 rank1: CPU1 Core0

 

 

 

○ Xeon(R) (Core MA)の通信経路

・CPU内通信 (共有キャッシュ経由)
 rank0: CPU0 Core0
 rank1: CPU0 Core2

・CPU内通信 (FSB経由)
 rank0: CPU0 Core0
 rank1: CPU0 Core1

・CPU間通信 (FSB経由)
 rank0: CPU0 Core0
 rank1: CPU1 Core0

 

 

QPIのMPI通信テスト結果をグラフにて報告

以上の構成により通信帯域とレイテンシーのテストを行いました。結果はグラフ化して掲載しています。

 

・ NehalemのCPU内でのコア間MPI通信バンド幅: 11.8GB/s
・ NehalemのCPU間でのQPI経由のコア間MPI通信バンド幅: 5.6GB/s
・ Core MAのCPU内でのコア間MPI通信バンド幅: 8.5GB/s
・ Core MAのCPU内でのFSB-Chipset経由のコア間MPI通信バンド幅: 2.6GB/s
・ Core MAのCPU間でのFSB-Chipset経由のコア間MPI通信バンド幅: 2.4GB/s

 

 

 

・ NehalemのCPU内でのコア間MPI通信の16KB転送時のレイテンシー: 3.2μs
・ NehalemのCPU間でのQPI経由のコア間MPI通信の16KB転送時のレイテンシー: 5.9μs
・ Core MAのCPU内でのコア間MPI通信の16KB転送時のレイテンシー: 4.8μs
・ Core MAのCPU内でのFSB-Chipset経由のコア間MPI通信の16KB転送時のレイテンシー: 9.8μs
・ Core MAのCPU間でのFSB-Chipset経由のコア間MPI通信の16KB転送時のレイテンシー: 11.0μs

 

さいごに

 テスト結果をみるとおおむね期待した性能が出ていました。ただしこのテストは単純なピアツーピアでのデータ転送テストを一対のみ実行しているため、実際の並列処理で発生するような、複数のプロセスが相互に通信を行い、複数の計算がメモリI/Oを行い、複数のネットワーク通信が行われるような状態を再現しているわけではありません。もし、このような状態を再現できれば、Core MAの側は通信コリジョンによるボトルネックが発生し性能低下が予想されます。ところがNehalemの側は独立した3系統の高速通信チャンネルを持つため、通信コリジョンの発生が抑えられると予想されます。その結果両者の性能差はより大きく開くと予想されます。