2/10(金) 掛川・晴

 やんなきゃいけないことをほったらかして現実逃避モードに入ってしまった。いいいいかん。ねじ巻きなおさなきゃ。これ書いたら仕事に戻りまーす。

 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系が早いからな。

 では復帰します。