デュアルプロセッサ、マルチコアなど複数のCPUコア、CPUキャッシュからなるシステムでは、CPUキャッシュの整合性に問題が無いかを確認するためのスヌープサイクルというものがチップセットからCPUに向けて発生します。データサイズの小さいプロセスが大量に発生するIT系サーバでは有用なこの機能も、HPC用途のようにデータサイズが大きくメモリバスへの負荷が大きな場合にはスヌープサイクルが性能低下を引き起こします。そこで各CPUキャッシュのアドレス情報(TAG)をチップセット側のSRAM(TAG-RAM)に持たせることでスヌープサイクルによるパフォーマンス低下を防止します。この機能をスヌープフィルタと呼び、マルチCPU、マルチコア時代のHPCには必須の機能です。
HPC-ProServer Dシリーズが採用しているインテル 5000Xチップセット (GreenCreek)は他の競合サーバセットと比べて大容量のTAG-RAMが搭載されており、スヌープフィルタ機能をオンにすることでHPC用途では絶大な効果が得られるようにインテルがHPC向けにチューニングしたチップセットです。
弊社では、スヌープフィルタ機能がメモリ負荷の大きな用途でどのくらいの効果を発揮するのか、実際にキャッシュメモリテストを1、2、4スレッドと変化させて実行し、その際にスヌープフィルタをオン/オフすることでどのように性能が変化するかを確認しました。キャッシュメモリテストには国立天文台富阪幸治先生がソースを公開されている(http://th.nao.ac.jp/~tomisaka/benchmark/bench_2.html)キャッシュ特性測定用のベンチマークプログラムを用いました。
1、2、4スレッドいずれの場合でもスヌープフィルタ機能をオンにすると、オフの場合よりもそれぞれ13%、28%、19%性能が向上するという結果が得られました。一つの計算が1日、1週間、1ヶ月というようなHPC用途ではこの性能差は大きく、ライバルとの競争に勝つか負けるかを左右するのではないかと推測いたします。HPC-ProServer Dシリーズはこのスヌープフィルタが採用されているインテル 5000Xチップセット (GreenCreek)を採用しており、64bit Quad Xeon Core SMPマシンとして一段と優れたパフォーマンスを持っている計算機であることが確認されました。ライバルよりも一歩先の性能を求められるお客様には強くお勧めできるマシンです。弊社ではHPC-ProTuningの一環として今後さらに、実アプリケーションにおけるスヌープフィルタの効果も検証し、随時報告する予定です。ご期待ください。
![]() |
[クリックすると画像が拡大]
※Averageの値は、データサイズがもっとも小さい方から15個と、大きい方から15個のベンチマーク結果を抽出して平均値を取得したものです。
### テスト環境 ###
Platform: HPC-ProServer DPe1950
CPU: Xeon (Woodcrest) 5160 3GHz/4MB_cache FSB1333MHz 2CPU 4Core
Chipset: Intel 5000X
Memory: DDRII-667 FB-DIMM 16GB
HDD: SAS 15krpm 73GB * 3 (RAID5)
OS: RedHat EL WS4 Update3 EM64T
Kernel: 2.6.9-34
Compiler: Intel Fortran Compiler Version9.1