hpl001

シンジです。AWSのインスタンスサイズって沢山あると思うのですが、それぞれに同じCPUベンチマークをかけて、どれくらいパフォーマンス差があるのか取ってみました。前置きですが、CPUの最大パフォーマンス値を取るのが目的では無く、同じ条件でテストを回して比較してみるというのが主旨です。

c4.10xlargeでベンチマーク回すと使用率がこんな感じになります(xhpl)

top - 13:07:57 up 31 min,  2 users,  load average: 40.02, 40.01, 34.71
Tasks: 328 total,  41 running, 287 sleeping,   0 stopped,   0 zombie
Cpu(s): 99.0%us,  1.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  165055516k total, 161656388k used,  3399128k free,    11456k buffers
Swap:        0k total,        0k used,        0k free,   191736k cached

   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
  4133 root      20   0 4256m 3.8g 5036 R 100.0  2.4  31:06.37 xhpl
  4097 root      20   0 4256m 3.9g 5044 R 100.0  2.4  31:06.45 xhpl
  4099 root      20   0 4256m 3.8g 5328 R 100.0  2.4  31:06.35 xhpl
  4101 root      20   0 4256m 3.8g 4968 R 100.0  2.4  31:06.34 xhpl
  4102 root      20   0 4256m 3.8g 5064 R 100.0  2.4  31:06.44 xhpl
  4106 root      20   0 4256m 3.8g 5320 R 100.0  2.4  31:06.06 xhpl
  4109 root      20   0 4256m 3.8g 5124 R 100.0  2.4  31:06.22 xhpl
  4110 root      20   0 4256m 3.9g 5264 R 100.0  2.4  31:06.45 xhpl
  4117 root      20   0 4256m 3.8g 5184 R 100.0  2.4  31:06.34 xhpl
  4120 root      20   0 4256m 3.9g 5220 R 100.0  2.4  31:06.31 xhpl
  4123 root      20   0 4106m 3.7g 5128 R 100.0  2.4  31:06.45 xhpl
  4126 root      20   0 4256m 3.8g 4984 R 100.0  2.4  31:06.34 xhpl
  4128 root      20   0 4256m 3.8g 5004 R 100.0  2.4  31:05.84 xhpl
  4100 root      20   0 4256m 3.9g 5100 R 99.9  2.4  31:06.37 xhpl
  4103 root      20   0 4256m 3.9g 5284 R 99.9  2.4  31:06.38 xhpl
  4104 root      20   0 4256m 3.8g 5208 R 99.9  2.4  31:06.37 xhpl
  4105 root      20   0 4256m 3.9g 5144 R 99.9  2.4  31:06.40 xhpl
  4107 root      20   0 4256m 3.9g 5248 R 99.9  2.4  31:06.31 xhpl

ピャーwww

hpl002

ピャーーーーーwww

hpl003

結果こうなりました

エクセルにしてダウンロードできるようにしてあるので、グラフ化したり比較したり自由にやってください。

No instance type GFLOPS
1 t2.nano 34.7838
2 t2.micro 20.8418
3 t2.small 37.1217
4 t2.medium 74.8527
5 t2.large 76.1116
6 m4.large 38.0627
7 m4.xlarge 35.5011
8 m4.2xlarge 71.1001
9 m4.4xlarge 143.1802
10 m4.10xlarge 303.4003
11 m3.medium 10.2084
12 m3.large 21.0002
13 m3.xlarge 21.1846
14 m3.2xlarge 36.5434
15 c4.large 44.5337
16 c4.xlarge 41.4884
17 c4.2xlarge 83.0626
18 c4.4xlarge 166.9141
19 c4.8xlarge 309.8898
20 c3.large 21.9553
21 c3.xlarge 19.9627
22 c3.2xlarge 39.1188
23 c3.4xlarge 76.6261
24 c3.8xlarge 142.4067
25 cc2.8xlarge 132.0096
26 g2.2xlarge 37.2088
27 g2.8xlarge 125.4026
28 r3.large 20.9347
29 r3.xlarge 18.3905
30 r3.2xlarge 36.3284
31 r3.4xlarge 71.6649
32 r3.8xlarge 140.2955
33 d2.xlarge 35.3689
34 d2.4xlarge 143.4394
35 d2.8xlarge 265.7762
36 i2.xlarge 18.5388
37 i2.2xlarge 36.6694
38 i2.4xlarge 71.8114
39 i2.8xlarge 138.6036
40 hi1.4xlarge 32.0648
41 hs1.8xlarge 28.2609

どうやったか解説

Intel® Math Kernel Library – LINPACK を使いました。本当はHPLを使いたかったのですが、実際にやってたらえらい時間かかってしまって待ちきれなかったので、さくっとお手軽に皆さんもお試し出来る方法でやりました。

https://software.intel.com/en-us/articles/intel-math-kernel-library-linpack-download

Amazon Linuxで立ち上げます

今回はそこは割愛。

後は以下の通り

sudo su -
wget http://registrationcenter.intel.com/irc_nas/8305/l_mklb_p_11.3.1.002.tgz
tar zxvf l_mklb_p_11.3.1.002.tgz
cd l_mklb_p_11.3.1.002/benchmarks_11.3.1/linux/mkl/benchmarks/linpack/
vi test.sh

今回は、以下のようなスクリプトを組んでみました。

#!/bin/bash
#
export KMP_AFFINITY=nowarnings,compact

P=`cat /proc/cpuinfo | grep -c @`

export OMP_NUM_THREADS=${P}
date
date
echo NT=${P}
./xlinpack_xeon64 lininput_xeon64
date
echo -n "Done: "

権限を与えて実行します。

chmod +x test.sh
./test.sh

インスタンスにもよりますが、結果が出るまでは数十分から数時間かかりますので覚悟の上で実施して下さい。
何度も書きますが、きちんとチューニングしてピークなGFLOPSをちゃんと取りに行こうとすれば、これらの倍以上の能力値が出るのを確認していますので、そこはご了承下さい。今回は、同じテストを全インスタンスに〜が目的です。

というか、このお手製スクリプト使わずに、

./runme_xeon64

とそのまま叩いた方が結果がいいんじゃねーのかというアレもアレですがいろいろお試し下さい。

X1インスタンスという化け物インスタンスが予定されていますので

100コア、2TBメモリだったかな?きたら試してみたいですね〜!

元記事はこちら

AWS EC2 全インスタンスのCPUベンチマークを取った