お問い合わせ | 導入事例 | 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グラフ | 並列処理の階層化

1CPU 4core 1job VS 2CPU 8core 8job図 (CPU内CPU間処理)

 

1CPU 4core 1job VS 2CPU 8core 8job図 (CPU内CPU間処理複合)
をCPU内処理とCPU間処理に分解
1CPU 4core 1job VS 1CPU 4core 4job図 (CPU内処理のみ),
1CPU 4core 4job VS 2CPU 8core 8job図 (CPU間処理のみ)

その結果、CPU内処理効率に関しては、アプリケーション毎に大きく異なっています。また新世代プロセッサであるAMD Opteron(TM)やNehalemではボトルネックが改善していることが判ります。

次に、CPU間処理効率に関しては、は1世代前のXeon(R)からボトルネックは解消しています。

以上のことより、Nehalemでは、「メモリ性能律速型アプリケーション」についてはさらなるメモリ性能の向上が求められ、要求量はアプリケーションによって大きく異なっていることがわかります。

CPU間ボトルネックとCPU内ボトルネックの調査 (09.4.22)

 2CPU機で発生するメモリボトルネックは、2個のCPU間で発生しているのではなく、1個のCPU内で発生していることが知られています。これは実際に「メモリ性能律速型アプリケーション」で並列計算を行った際に、並列化効率が4並列から8並列へ移行する際に大きく低下することとして知られています。これを回避するため従来のXeon(R)ではDual-Core CPUを選択していました。

 最初のグラフはシステム内で発生しているメモリボトルネックの様子を示すため、2CPU 8コア機での1ジョブ処理と8ジョブ処理のスループット効率を各アプリケーション別かつCPU世代別に調べた結果です。するとアプリケーションによってスループット効率に大きな違いがあることとCPUによっても効率が異なることがわかります。しかしこのグラフではボトルネックがCPU内で発生しているのかあるいはCPU間で発生しているのかが判りません。そこでSPEC CFP2006の結果を用いて詳しい観察をしたいと思います。

CPU間とCPU内のボトルネックを分離して表示

 次のグラフはCPU間のメモリボトルネックとCPU内のメモリボトルネックの比較を行うため2種類のグラフに分離しました。

・ CPU内メモリボトルネック観察用グラフ (1CPU機1ジョブ処理と1CPU機4ジョブ処理でのスループット効率を比較)
・ CPU間メモリボトルネック観察用グラフ (1CPU機4ジョブ処理と2CPU機8ジョブ処理でのスループット効率を比較)

 左グラフをみると"赤い線"で表記している「CPU性能律速型アプリケーション」は4ジョブ並行処理でも理想的なスループット性能 (100%) を維持していることがわかります。これに対して"青い線"で表記している「メモリ性能律速型アプリケーション」は理想的なスループットには程遠く、従来のXeon(R)では理想値の10%〜40%、現行のAMD Opteron(TM)でも25%〜60%、最新のXeon(R) (Nehalem) でも25%〜60%と、程度に差はありますが、100%のスループット性能は得られていません。

 ところが右グラフをみると驚いたことに、CPU間のメモリ競合は2世代前のXeon(R)で少し発生していただけで、それ以降はCPU間のメモリ競合は発生していませんでした。すなわち、従来のXeon(R)ではチップセットとメモリ間の転送性能よりも、CPUとチップセット間を接続するフロントサイドバスにボトルネックが存在していたことになります。従来のXeon(R)でDual-Core Xeon(R)を採用していた理由はここに由来していたようです。

・ メモリボトルネックは同じCPU内のコア間で発生している
・ CPU間のメモリボトルネックは現在は殆ど発生しない
・ CPU間メモリボトルネックが発生したのは2世代前の65nm Xeon(R)まで
・ 激しいCPU内メモリボトルネックが発生するのは「メモリ性能律速型アプリケーション」でまだ解消していない
・ 「メモリ性能依存型アプリ」のボトルネック解消には50GB〜100GB/s/CPU (Nehalem)のメモリ性能が必要
・ 「CPU性能依存型アプリ」では現在のメモリシステムでも十分な性能が得られる

Xeon(R) (Nehalem) について

 新Xeon(R) (Nehalem) は各CPU上に独立したメモリコントローラを持ち、3チャンネルのメモリポートが実装されており、高速なDDR3メモリを利用できます。そのメモリ性能はDDR3 800MHzで19.2GB/s、DDR3 1066MHzでは25.6GB/s、DDR3 1333MHzでは32GB/sの転送速度を実現します。さらにCPU上には8MBの共有L3キャッシュを搭載し効率の良いメモリI/Oやコア間通信を実現しています。

(参考) 各メモリ仕様とシステムレベルの総合転送性能の比較表を掲載

(表の値はウィキペディアなどを参照して作成)

メモリ種類 チップ規格 モジュール
規格
メモリクロック
(MHz)
バスクロック
(MHz)
データ
転送速度
(GB/s)
CPU CPU毎の
接続チャネル
CPU毎の
データ
転送速度
(GB/s)
DDR2 DIMM DDR2-400 PC2-3200 100 - 3.20 AMD
Opteron(TM)
2 6.40
DDR2-533 PC2-4200 133 - 4.27 8.54
DDR2-667 PC2-5300 166 333 5.33 10.66
DDR2-800 PC2-6400 200 400 6.40 12.80
DDR3 DIMM DDR3-1333 PC3-10600 166 667 10.67 AMD
(Next)
(4) 42.68
DDR2 FB-DIMM DDR2-400 PC2-3200 100 - 3.20 Xeon(R)
(NetBurst)
(Core)
(2) (6.40)
DDR2-533 PC2-4200 133 - 4.27 (8.54)
DDR2-667 PC2-5300 166 - 5.33 (10.66)
DDR2-800 PC2-6400 200 - 6.40 (12.80)
DDR3 DIMM DDR3-800 PC3-6400 100 400 6.40 Xeon(R)
Core(TM) i7
(Nehalem)
3 19.20
DDR3-1066 PC3-8500 133 533 8.53 25.59
DDR3-1333 PC3-10600 166 667 10.67 32.01
DDR3-1600 PC3-12800 200 800 12.80 - (3) (38.40)
DDR3-1800 PC3-14400 225 900 14.40 (43.20)
DDR3-2000 PC3-16000 250 1000 16.00 (48.00)
DDR3-2133 PC3-17066 266 1066 17.06 (51.18)

 

SPEC CFP2006よりの引用資料

  SPEC CFP2006 Rates (並行処理性能)
世代 2世代前
Xeon(R)
(65nm)
1世代前
Xeon(R)
(45nm)
現行
AMD
Opteron(TM)
(Shanghai)
最新
Xeon(R)
(Nehalem)
製品 DL140 DL140 DL160 DL160 DL365 DL365 8200EX 8200EX
CPU Xeon Xeon Xeon Xeon AMD
Opteron(TM)
AMD
Opteron(TM)
Xeon Xeon
製造プロセス 65nm 65nm 45nm 45nm 45nm 45nm 45nm 45nm
CPU番号 X5365 X5365 X5482 X5482 2384 2384 W5570 W5570
CPUクロック 3.0GHz 3.0GHz 3.2GHz 3.2GHz 2.7GHz 2.7GHz 2.93GHz 2.93GHz
チップセット 5000P 5000P 5400 5400 - - X58 X58
メモリ DDR2
667MHz
16GB
DDR2
667MHz
16GB
DDR2
800MHz
32GB
DDR2
800MHz
32GB
DDR2
800MHz
32GB
DDR2
800MHz
32GB
DDR3
1066MHz
12GB
DDR3
1066MHz
12GB
OS Linux Linux Linux Linux Linux Linux Linux Linux
コンパイラ Intel11 Intel11 Intel11 Intel11 Intel11 Intel11 Intel11 Intel11
CPU 数 1 1 1 1 1 1 2 1
コア数/CPU 4 4 4 4 4 4 8 4
総コア数 4 4 4 4 4 4 8 4
投入ジョブ数 4 1 4 1 4 1 8 1
SPEC値 36.1 18.1 86.4 26.4 52.6 19.3 169 37.0
経過時間(秒)                
bwaves
2395 436 2494 319 1059 511 617 165
gamess 929 956 822 876 1162 1200 771 801
milc 2584 886 1465 574 986 443 507 243
zeusmp 936 595 811 378 635 542 400 276
gromacs 397 380 359 337 472 489 317 302
cactusADM 1144 307 928 96.6 757 543 502 66.8
leslie3d 2365 573 1779 465 1162 490 613 323
namd 509 504 465 462 618 635 432 407
dealII 580 415 575 391 566 532 384 328
soplex 1677 663 1406 571 899 535 496 278
povray 223 221 204 202 308 307 189 181
calculix 564 532 383 339 456 453 301 290
GemsFDTD 2987 640 2111 358 1354 579 789 268
tonto 744 482 599 485 620 577 412 374
lbm 3657 2153 2780 364 1767 447 1018 289
wrf 1416 536 1315 476 802 499 428 274
sphinx3 2586 890 1896 676 1060 761 864 451

 

※ (お断り) この比較では1CPU機での1ジョブ処理と4ジョブ処理の経過時間に基づいたスループット効率を割り出しています。ところが、Xeon(R) (Nehalem) については目的に適ったテストが行われていませんでした。そこでやむを得ず2CPU 8コア機に8ジョブ投入した際のデータを用いています。しかし、Xeon(R) (Nehalem)は個々のCPU に独立してメモリが搭載されており、複数のCPU間でのスループット効率は100%に近い性能が得られていることを他で確認しているため、2CPUの結果を用いても体制に影響しないことを理解していただいたうえで、結果を見ていただきたい思っております。

SPEC CFP2006よりの引用資料

  SPEC CFP2006 Rates (並行処理性能)
世代 2世代前Xeon(R)
(65nm Core)
1世代前Xeon(R)
(45nm Core)
現行AMD
Opteron(TM)
(45nm Shanghai)
最新Xeon(R)
(Nehalem)
製品 DL140 DL140 DL160 DL160 DL365 DL365 R670 M470
CPU Xeon Xeon Xeon Xeon AMD
Opteron(TM)
AMD
Opteron(TM)
Xeon Xeon
製造プロセス 65nm 65nm 45nm 45nm 45nm 45nm 45nm 45nm
CPU番号 X5365 X5365 X5482 X5482 2384 2384 W5580 W5580
CPUクロック 3.0GHz 3.0GHz 3.2GHz 3.2GHz 2.7GHz 2.7GHz 3.2GHz 3.2GHz
チップセット 5000P 5000P 5400 5400 - - 5520 X58
メモリ DDR2
667MHz
16GB
DDR2
667MHz
16GB
DDR2
800MHz
32GB
DDR2
800MHz
32GB
DDR2
800MHz
32GB
DDR2
800MHz
32GB
DDR3
1333MHz
48GB
DDR3
1333MHz
12GB
OS Linux Linux Linux Linux Linux Linux Linux Linux
コンパイラ Intel11 Intel11 Intel11 Intel11 Intel11 Intel11 Intel11 Intel11
CPU 数 2 1 2 1 2 1 2 1
コア数/CPU 4 4 4 4 4 4 4 4
総コア数 8 4 8 4 8 4 8 4
投入ジョブ数 8 4 8 4 8 4 16 8
経過時間(秒)                
bwaves
3279 2395 2508 2494 1068 1059 1123 1162
gamess 929 929 837 822 1164 1162 1435 1490
milc 3522 2584 1477 1465 993 986 797 831
zeusmp 1127 936 827 811 650 635 673 650
gromacs 398 397 360 359 473 472 543 558
cactusADM 1389 1144 939 928 773 757 800 788
leslie3d 3142 2365 1813 1779 1167 1162 1077 1157
namd 512 509 470 465 618 618 651 668
dealII 687 580 634 575 595 566 603 607
soplex 2229 1677 1443 1406 923 899 886 913
povray 225 223 204 204 312 308 295 300
calculix 576 564 385 383 461 456 526 545
GemsFDTD 3954 2987 2095 2111 1360 1354 1372 1468
tonto 868 744 625 599 631 620 726 719
lbm 4486 3657 2795 2780 1770 1767 1761 1864
wrf 1841 1416 1327 1315 820 802 776 770
sphinx3 3508 2586 1949 1896 1114 1060 1460 1485

 

 

【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 April 03, 2009. The comparison presented above is based on the best performing 2-cpu servers currently shipping by Intel Corporation, Hewlett-Packard Company, SGI, Fujitsu Siemens Computers For the latest SPEC CPU2006 benchmark results, visit http://www.spec.org/cpu2006/