ノウハウ
[エンジニア向け]

即座に実行速度がわかる!姫野ベンチマークを使ったCPUベンチマーク

ノウハウ
テクニカルサポート

CPUベンチマークには色々な方法があると思いますが、今回は理化学研究所で公開されている姫野ベンチマークを使って、CPUベンチマークを取ってみたいと思います。

■サーバ情報

OS:CentOS 5.8
MEM:16GB
CPU:Intel Xeon E3-1265L V2 @ 2.50GHz

 

■姫野ベンチマーク

今回は以下ソースを使用しました。
ダウンロード > ソース & 実行形式(Win/Mac 用) > C, static allocate version > サイズM cc_himenoBMTxp_m.lzh
lzhで圧縮されているのでlhaをインストールします。
# wget 'http://sourceforge.jp/frs/redir.php?m=keihanna&f=%2Flha%2F22231%2Flha-1.14i-ac20050924p1.tar.gz'
# tar zxfv lha-1.14i-ac20050924p1.tar.gz
# cd lha-1.14i-ac20050924p1
# ./configure
# make
# make install

 

姫野ベンチマークをmakeします。
# wget http://accc.riken.jp/secure/4503/cc_himenobmtxp_m.lzh
# lha e cc_himenobmtxp_m.lzh
# make

 

実行してみます。
# ./bmt
mimax = 129 mjmax = 129 mkmax = 257
imax = 128 jmax = 128 kmax =256
Start rehearsal measurement process.
Measure the performance in 3 times.
MFLOPS: 1171.498334 time(s): 0.351102 1.733593e-03
Now, start the actual measurement process.
The loop will be excuted in 512 times
This will take about one minute.
Wait for a while
Loop executed for 512 times
Gosa : 9.802522e-04
MFLOPS measured : 1212.506895  cpu : 57.894788
Score based on Pentium III 600MHz : 14.786669
MFLOPS measuredが計測結果です。
1212.506895MFLOPSという結果が出ていますが、シングルスレッドで実行されているので4コアフルに使用されていません。
topコマンドでCPU使用率を調べると12%程度しか使用されていませんでした。
top - 14:56:03 up 63 days, 20:10,  2 users,  load average: 0.88, 2.76, 1.90
Tasks: 314 total,   2 running, 312 sleeping,   0 stopped,   0 zombie
Cpu(s): 12.6%us,  0.0%sy,  0.0%ni, 87.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  16377056k total,  2866588k used, 13510468k free,   514528k buffers
Swap: 12008548k total,      144k used, 12008404k free,  1295068k cached
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
406055 root      25   0  231m 228m  376 R 100.0  1.4   0:49.61 bmt

マルチコアCPUでのベンチマーク

マルチコアCPUを100%使用するためには、複数のスレッドを同時に実行する必要がありますので、
mpiexecをインストールして複数スレッドを同時に実行出来るようにします。
# yum -y install openmpi*
mpiexecを使って8スレッド同時に実行してみます。
# /usr/lib64/openmpi/1.4-gcc/bin/mpiexec -np 8 ./bmt | grep "MFLOPS measured"
MFLOPS measured : 648.483702   cpu : 57.084529
MFLOPS measured : 647.622222   cpu : 57.160464
MFLOPS measured : 642.585175   cpu : 57.821894
MFLOPS measured : 649.196333   cpu : 57.866635
MFLOPS measured : 649.179719   cpu : 57.868116
MFLOPS measured : 648.338671   cpu : 58.154656
MFLOPS measured : 644.024837   cpu : 58.118414
MFLOPS measured : 646.059452   cpu : 58.147601
個別のスレッドに対して結果がでるので、これを全て足した物がこのCPUの能力になります。
今回は5,173MFLOPSでした。
CPUも100%使用されています。
top - 14:58:30 up 63 days, 20:12,  2 users,  load average: 2.38, 2.24, 1.80
Tasks: 324 total,   9 running, 314 sleeping,   0 stopped,   1 zombie
Cpu(s):100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  16377056k total,  4527228k used, 11849828k free,   514540k buffers
Swap: 12008548k total,      144k used, 12008404k free,  1295276k cached
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
406193 root      25   0  231m 228m  380 R 100.0  1.4   0:16.34 bmt
406194 root      25   0  231m 228m  380 R 100.0  1.4   0:16.33 bmt
406195 root      25   0  231m 228m  380 R 100.0  1.4   0:16.33 bmt
406196 root      25   0  231m 228m  380 R 100.0  1.4   0:16.33 bmt
406198 root      25   0  231m 228m  380 R 100.0  1.4   0:16.32 bmt
406199 root      25   0  231m 228m  380 R 100.0  1.4   0:16.22 bmt
406197 root      25   0  231m 228m  380 R 99.7  1.4   0:16.30 bmt
406200 root      25   0  231m 228m  380 R 99.4  1.4   0:16.09 bmt
結果を安定させるため複数回実行してベンチマークを取りますが、
面倒なのでMFLOPS measuredを集計する簡単なスクリプトを使いました。
使い方は himeno_run.sh [スレッド数] [回数] です。

himeno_run.sh

#!/bin/bash
thread=$1
times=$2
while [ $times -ge 1 ];
do
RES=(`/usr/lib/openmpi/1.4-gcc/bin/mpiexec -np $thread ./bmt | grep measured | awk '{print $4}' | cut -d . -f 1`)
total=0
n=${#RES[@]}
n=$((n - 1))
while [ $n -ge 0 ];
do
total=$((RES[$n] + $total))
n=$((n - 1))
done
echo "total = $total MFLOPS"
times=$((times - 1))
done

実行

# ./himeno_run.sh 8 3
total = 5179 MFLOPS
total = 5134 MFLOPS
total = 5194 MFLOPS

簡単な性能把握であれば3回の平均で十分だと思います。

サポート不要のエンジニア向けクラウド、ローコストクラウド。月額3,150円でメモリ3GB、CPU1コア、HDD50GBが使えます。2週間の無料お試し利用もあるので、サーバーのパフォーマンス評価にぜひお試しください。
詳しくは、こちらのローコストクラウドのページから。

この記事を書いた人

テクニカルサポート

テクニカルサポートを得意とするエクスクラウドのサポートスタッフ。

この記事のタグ

オススメの記事

ページトップへ