みけCATのにっき(仮)
つれづれなるまゝに、日くらし、PCにむかひて、心に移りゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐるほしけれ。
(本当か!?)
出典

姫野ベンチマークをやってみた

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

姫野ベンチマークをやってみた

投稿記事 by みけCAT » 10年前

私は、2日間くらいかけてOpenMPIのmakeに挑戦していました。
コンパイルエラーが出たらソースコードを書き換えて対症療法を行い、
リンクエラーが出たらダミーファイルを作ってとりあえず先に進め、
コンパイラがサポート外だと言われても判定部分をコメントアウトして先に進め、
make installも行い…

結果
ダミーファイルのため公式のmpiccなどは使えず、コンパイラを直で使おうとしてもリンクエラーでバイナリができず。
(実質)何の成果も得られませんでしたあああああああ!!

さて、自分の環境では残念ながら失敗したOpenMPIですが、
成功例として紹介されていた「姫野ベンチマーク」とやらを試してみることにしました。
姫野ベンチマークは、ここからダウンロードできます。
http://accc.riken.jp/2145.htm
Windows用とMac用の実行ファイル及びソースコードが用意されています。
早速やってみました。
公式バイナリの方が公平な条件になりそうですが、とりあえずソースコードを自分でコンパイルして実験します。

環境
Windows Vista Home Premium SP2 32ビット
Intel(R) Core(TM)2 Duo CPU T8100 @2.10GHz 2.10GHz
RAM 4.00GB
gcc 4.7.2

使用ソースコード:himenoBMTxp_cc_omp_al.lzh
(このファイル、with Makefileとなっているのに.cのソースコードしか入っておらず、詐欺のようです)

コンパイルオプション

CODE:

> gcc -O2 -o himenoBMTxpa.exe himenoBMTxpa.c -static
> gcc -O2 -fopenmp -o himenoBMTxpa_omp.exe himenoBMTxpa.c -static
サイズはLで測定しようとしたら強制終了してしまったので、Mで測定しました。
(1,445,924 KBもメモリを食った結果、メモリ不足になったようです)

結果
OpenMPなし

CODE:

>himenoBMTxpa M
mimax = 128 mjmax = 128 mkmax = 256
imax = 127 jmax = 127 kmax =255
 Start rehearsal measurement process.
 Measure the performance in 3 times.

 MFLOPS: 514.144260 time(s): 0.800000 1.693779e-003

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

cpu : 60.122000 sec.
Loop executed for 224 times
Gosa : 1.216205e-003
MFLOPS measured : 510.820506
Score based on Pentium III 600MHz using Fortran 77: 6.166351
OpenMPあり

CODE:

>himenoBMTxpa_omp M
mimax = 128 mjmax = 128 mkmax = 256
imax = 127 jmax = 127 kmax =255
 Start rehearsal measurement process.
 Measure the performance in 3 times.

 MFLOPS: 816.102000 time(s): 0.504000 1.693779e-003

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

cpu : 59.515000 sec.
Loop executed for 357 times
Gosa : 1.095624e-003
MFLOPS measured : 822.423482
Score based on Pentium III 600MHz using Fortran 77: 9.927855
公式バイナリ

CODE:

>himenoBMTxp_m.exe
  mimax=         257  mjmax=         129  mkmax=         129
  imax=         256  jmax=         128  kmax=         128
  Start rehearsal measurement process.
  Measure the performance in 3 times.
   MFLOPS:   1198.464       time(s):  0.3432022      1.6839170E-03
 Now, start the actual measurement process.
 The loop will be excuted in         524  times.
 This will take about one minute.
 Wait for a while.
  Loop executed for          524  times
  Gosa :  9.7985030E-04
  MFLOPS:   1267.629       time(s):   56.67516
  Score based on Pentium III 600MHz :   15.30214
Fortran Pause - Enter command or  to continue.
自分でコンパイルしたバイナリより公式バイナリの方が速いようですね。
ちなみに、BOINCのベンチマークの結果が
2184 floating point MIPS (Whetstone) per CPU
4773 integer MIPS (Dhrystone) per CPU
なので数字が小さい…と思ったがよく見ると単位も異なります。これは妥当な結果なのでしょうか?

次に、仮想マシンのUbuntu上で測定してみます。

環境
VirtualBox 4.2.16
Ubuntu 8.04
RAM 376.5MB
gcc 4.2.4
最適化-O2

結果
OpenMPなし

CODE:

$ ./himenobmtxpa M
mimax = 128 mjmax = 128 mkmax = 256
imax = 127 jmax = 127 kmax =255
 Start rehearsal measurement process.
 Measure the performance in 3 times.

 MFLOPS: 314.795129 time(s): 1.306613 1.693779e-03

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

cpu : 42.677473 sec.
Loop executed for 137 times
Gosa : 1.322192e-03 
MFLOPS measured : 440.124551
Score based on Pentium III 600MHz using Fortran 77: 5.312947
OpenMPあり

CODE:

$ ./himenobmtxpa_omp M
mimax = 128 mjmax = 128 mkmax = 256
imax = 127 jmax = 127 kmax =255
 Start rehearsal measurement process.
 Measure the performance in 3 times.

 MFLOPS: 437.374626 time(s): 0.940419 1.733593e-03

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

cpu : 58.872253 sec.
Loop executed for 191 times
Gosa : 1.247475e-03 
MFLOPS measured : 444.811938
Score based on Pentium III 600MHz using Fortran 77: 5.369531
仮想マシンにしているぶん、速度が落ちているようです。

最後に、Javascript PC Emulatorで走らせてみました。
ただし、これはかなり遅く、XS設定でも時間がかかってしまうので、ソースを書き換えてかなり小さいサイズにしました。

環境
Firefox 23.0.1

結果

CODE:

# ./himenoBMTxpa XXXXS
mimax = 4 mjmax = 4 mkmax = 8
imax = 3 jmax = 3 kmax =7
 Start rehearsal measurement process.
 Measure the performance in 3 times.

 MFLOPS: 0.008577 time(s): 0.285414 7.707213e-03

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

cpu : 61.040759 sec.
Loop executed for 630 times
Gosa : 7.997833e-15
MFLOPS measured : 0.008422
Score based on Pentium III 600MHz using Fortran 77: 0.000102
案の定、通常のマシンとは比べ物にならないほど遅いですね。
cpu : 61(ry sec.となっていますが、実時間は5分くらいかかりました。

みなさんも是非姫野ベンチマークを実行してみて結果を晒し、
いかに私のパソコンが遅いかをわからせてください…

コメントはまだありません。