やんなきゃいけないことをほったらかして現実逃避モードに入ってしまった。いいいいかん。ねじ巻きなおさなきゃ。これ書いたら仕事に戻りまーす。
Akiba PC Hotlineを見ていたら,CoreDuoマシンでSuper πの結果をポップにしている写真があった。うーむ,ベンチマークソフトとしてはずいぶん古いよなぁ,ガチガチに最適化すると,1Coreではどんくらいのスピードになるのかしらん?
で早速やってみた。ワシはMPFR/GMPerなので,相手はgmp-chudnovsky.cとワシ手製のmpfr_pi.c。その結果は
○Pentium 4 3.0GHz + Vine Linux 3.2 + gcc 3.3.2 w/o any options
$ ./mpfr_pi 1000000
# of decimal digits: 1000000
# of bits : 3321929
Time : 23.440
$ ./gmp-chudnovsky 1000000
#terms=70513, depth=18
sieve time = 0.020
..................................................
bs time = 3.620
gcd time = 0.330
div time = 0.710
sqrt time = 0.340
mul time = 0.270
total time = 4.970
P size=1455608 digits (1.455608)
Q size=1455601 digits (1.455601)
○Pentium D 820 + Fedora Core 4 x86_64 + gcc 4.0.2 w/o any options
$ ./mpfr_pi 1000000
# of decimal digits: 1000000
# of bits : 3321929
Time : 25.680
$ ./gmp-chudnovsky 1000000
#terms=70513, depth=18
sieve time = 0.020
..................................................
bs time = 3.770
gcd time = 0.240
div time = 0.750
sqrt time = 0.380
mul time = 0.240
total time = 5.160
P size=1455608 digits (1.455608)
Q size=1455601 digits (1.455601)
○Athlon64 X2 3800+ + Fedora Core 4 x86_64 + gcc 4.0.2 w/o any options
$ ./mpfr_pi 1000000
# of decimal digits: 1000000
# of bits : 3321929
Time : 18.270
$ ./gmp-chudnovsky 1000000
#terms=70513, depth=18
sieve time = 0.020
.................................................
bs time = 2.840
gcd time = 0.240
div time = 0.580
sqrt time = 0.280
mul time = 0.190
total time = 3.910
P size=1455608 digits (1.455608)
Q size=1455601 digits (1.455601)
となった。全部gmp-4.1.4, mpfr-2.2.0で動かしたものである。結局,gmp-chudnovsky.cで4秒~5秒,mpfr_pi.cで18秒~25秒ってとこか。しかし,もっと頑張れPentium D。
ちなみにSuper πをAthlon64 X2 3800+とWindows XP x64上で動かすと,104万桁で46秒であった。IEEE754 floating-pointならIntel系が早いからな。
では復帰します。