ニフティクラウドlarge16 VMとEC2 Cluster Compute VMとでLINPACK Benchmark

Amazon EC2でCluster Computeサービスが提供されて久しいですが、ニフティクラウドで提供されているVMもなかなかの性能であるという事を耳にしたので、いっちょ試してみる事にしました。比較したのは、両サービスで利用できる最上位モデルである、以下の2タイプのVM。

  • Amazon EC2 cc1.4xlarge .. 33.5ECU, 23GB Memory, CentOS 5.4 HVM AMI(64bit), 1.60USD/h
  • ニフティクラウド large16(VM0416) .. 4vCPU, 16GB Memory, CentOS 5.3 64bit Server, 159.6円/h

vCPU(仮想CPU)や、ECU(EC2 Compute Unit)の辺りは定義が異なるため単純な比較が難しいのですが、これだけ見ると、なんとなく、EC2の方が凄い印象を受けます。が、結論から書くと、LINPACKによるFLOPS値ベースのベンチマーク測定では、ニフティクラウドの方に軍配が上がりました。

測定に使用したのは Intel® Math Kernel Library で配布されている、LINPACK Benchmark。TOP500 Supercomputer Sites でのベンチマークにも採用されている、浮動小数点演算性能(FLOPS)を測定するプログラムです。これを、上記それぞれの環境にてビルドし、設定ファイル(linpack_10.2.5/benchmarks/linpack/lininput_xeon64)を下記デフォルトの状態(probrem sizes については、デフォルトで 45000*45000*8 = 15GB Memory 向けのものが最大となっているので、メモリが少ない方(16GB)に合わせ、このまま)にて、 ./runme_xeon64 してみました。

[root@localhost linpack]# cat lininput_xeon64
Sample Intel(R) LINPACK data file (lininput_xeon64)
Intel(R) LINPACK data
15                     # number of tests
1000 2000 5000 10000 15000 18000 20000 22000 25000 26000 27000 30000 35000 40000 45000 # problem sizes
1000 2000 5008 10000 15000 18008 20016 22008 25000 26000 27000 30000 35000 40000 45000 # leading dimensions
4 2 2 2 2 2 2 2 2 2 1 1 1 1 1 # times to run a test
4 4 4 4 4 4 4 4 4 4 4 1 1 1 1 # alignment values (in KBytes)

で、両環境での各 probrem size に対するPerformance Summary(GFLOPS Average)は以下の通り。

全Problem Sizeにて、一貫してニフティクラウドのVMの方が演算性能が高いという結果が得られました。(ただし、今回試してみたのは、LINPACKのマニュアルをざっと読んだものの、設定デフォルトで実行したベンチマークであることをご了承ください。ひょっとしたら僕が何か見落としをしていて、EC2の環境に不利なベンチマークになってしまっているのかも知れません。お気づきの点がありましたら、コメントなどで教えていただけますと幸いです。)

ついでに、Amazon EC2の「Cluster Compute Instances」を使ってみた(High Performance Computing向け) – RX-7乗りの適当な日々さんでは、姫野ベンチマークでのベンチマークを実験されていたので、これも試してみました。(使用したのは、同じく”C, static allocate version”のMサイズです。)

EC2での結果は以下。

$ ./bmt
mimax = 129 mjmax = 129 mkmax = 257
imax = 128 jmax = 128 kmax =256
 Start rehearsal measurement process.
 Measure the performance in 3 times.

 MFLOPS: 1644.886598 time(s): 0.250057 1.733593e-03

 Now, start the actual measurement process.
 The loop will be excuted in 719 times
 This will take about one minute.
 Wait for a while

 Loop executed for 719 times
 Gosa : 8.710334e-04
 MFLOPS measured : 1764.548371  cpu : 55.866189
 Score based on Pentium III 600MHz : 21.518883

続いて、ニフティクラウドでの結果は以下の通り。

$ ./bmt
mimax = 129 mjmax = 129 mkmax = 257
imax = 128 jmax = 128 kmax =256
 Start rehearsal measurement process.
 Measure the performance in 3 times.

 MFLOPS: 1775.505622 time(s): 0.231661 1.733593e-03

 Now, start the actual measurement process.
 The loop will be excuted in 776 times
 This will take about one minute.
 Wait for a while

 Loop executed for 776 times
 Gosa : 8.474952e-04
 MFLOPS measured : 1865.590178  cpu : 57.029452
 Score based on Pentium III 600MHz : 22.751100

こっちのベンチマークは、スコアの見方がよくわからないのですが、MFLOPS値を見た限りでは、やはりニフティクラウドの方が良い値を出しているようです。

EC2 の cc1.4xlarge が16コアなのに、4コアのニフティクラウド large16 がここまで健闘できるのはなんでかなーと思っていたのですが、ひとつ違うのは、ニフティクラウドで採用されているCPUがX5680(3.33GHz)ってところがありました。EC2で採用されているCPUを確認したところ、そちらはX5570@2.93GHzでしたので、このスペック差が出ているのかもしれません(しかし、ここまでのコア数の差をも超えてしまうほどなんでしょうか..)。参考までに、ニフティクラウドのVMでの cat /proc/cpuinfo の出力は以下。

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 44
model name      : Intel(R) Xeon(R) CPU           X5680  @ 3.33GHz
stepping        : 2
cpu MHz         : 3332.491
cache size      : 12288 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc pni cx16 popcnt lahf_lm
bogomips        : 6678.02
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

processor       : 1
: (以下Processor: 3まで出力)

さて、冒頭にも書いた通り、両サービスのVM・時間当たりコストは 1.60USD/h v.s. 159.6円/h です。(最近円高ではありますが、)これらコストをそれほど変わらないものである(あるいは為替レート変動リスクがある)と見るのであれば、国内から低レイテンシで利用できるってメリットも含めると、うーん、ニフティクラウド、なかなかやるなあ、と思うような結果だったと思います。というか、この金額で、この性能が利用できるって、両方とも相当凄いサービスですね、ほんと。

こうなると、もういっちょ試してみたいのが、MP LINPACKによる複数ノードを使ってのベンチマーク。こちらは4 VMからでないと実行できないようなので、ちょっとお小遣いが必要ですが。。機会があれば、試してみようと思います。