円周率ベンチマークをやり直す


従来、「GNU/Linux上で円周率の計算をおこなうLink 」を、多倍長演算ライブラリ gmp-4.2.2 とともに使って円周率百万桁計算のベンチマークを行っていたが、gmp-5.0.5の性能がよさそうなので、再測定。すげ!
Central Processing Unit Hardware Operating System Compiler pi.c with gmp-4.2.2 pi.c with gmp-5.0.5 pi.c with gmp-5.1.0
3.4G Intel Core i7-2600 DELL XPS8300 debian64-2.6.32-5-amd64 /VirtualBox 4.2.4 /Windows 7 gcc-4.4.5 4.098s 2.209s 1.618s
2.5G Intel Core i5-3210M FUJITSU LIFEBOOK AH54/H debian64-2.6.32-5-amd64 /VirtualBox 4.2.4 /Windows 7 Home Premium gcc-4.4.5 2.188s 2.013s
3.4G Intel Core i7-2600 DELL XPS8300 ubuntu12 3.3.0-24-generic-pre /VirtualBox 4.2.4 /Windows 7 gcc-4.6.3 8.658s 4.715s
Intel(R) Pentium(R) 4 3.00GHz IBM ThinkCentre S50 8086-2KJ debian-6.0.6-i386 gcc-4.4.5 19.678s 10.441s
2.0G Intel(R) Core(TM) Duo CPU T2500 digital西行庵server CentOS release 5.5 (Final) gcc-4.1.2 22.728s 12.796s 12.776s
3.4G Intel Core i7-2600 DELL XPS8300 CYGWIN_NT-6.1-WOW64 /Windows 7 gcc-4.5.3 25.537s 13.621s
1.3G NVIDIA Tegra 3 quad-core Nexus 7 LinuxGaloula-ARMEL-3.1.10 on Android-4.1.2 gcc-4.4.5 43.991s 27.332s 17.718s
Intel(R) Pentium(R) M 1.4GHz IBM ThinkPad X31 TYPE 2672-CBJ debian -6.0.6-i386 /VirtualBox 4.2.4 /Windows XP SP3 gcc-4.4.5 40.619s 24.386s 23.257s
Intel(R) Pentium(R) M 1.3GHz IBM ThinkPad X31 TYPE 2672-B2J debian -6.0.6-i386 gcc-4.4.5 59.127s 33.236s
1.2 GHz ARM Marvell Kirkwood 88F6281 SheevaPlug Ubuntu9.04 gcc-4.3.3 1m13.602s 44.174s make不能
Broadcom BCM2835 (ARM1176JZFS (700MHz)) Raspberry Pi (model B) raspberrypi 3.2.27+ gcc-4.6.3 2m3.174s 1m17.624s 58.288s

gmp-4.2.2の4秒台って・・・以前仕事で管理していたサーバーの性能だ。うちのマシン、たいしたもんだ。今日もseti@home/boincで宇宙人を探している。常にCPUロードアベレージ100%x8だ。

Tegra3 1.3G (Nexus7)が、PenM1.4G (ThikpadX31) を抜いた!

 


— posted by nitobe at 10:00 pm   commentComment [1]  pingTrackBack [0]

関孝和


seki_taka


「関孝和」ー250年祭記念ー
著者:平山諦
発行所:株式会社恒星社厚生閣
発行日:昭和34年3月25日 初版
定価:650円
購入:金沢書店¥6,150-

「たっちゃん」さんのたれこみで購入。該当箇所は「括要算法 貞」(関氏孝和先生遺編・荒木村英検閲・大高由昌 校訂)、11.「弧術」、12.「弧背率解」の解説。興味深い参考文献をご紹介くださいました。ありがとうございます。:)


 

— posted by nitobe at 07:07 pm   commentComment [0]  pingTrackBack [0]

Nexus 7 で pi を計算する C4droid_examples


20121104-175618


結局今回は使わなかった Nexus 7 のアプリ、C4droid (C/C++ compiler)Link n0n3m4 に付いている examples の中に、円周率を計算するサンプルコードがある。初期値2の p を、p*=((double)(((int)((i+2)/2))*2))/(((int)((i+1)/2))*2+1); で百万回回している。その割に、実行結果は、Pi = 3.141591 ・・・小数点以下5桁までしか正しくない。しょぼい。何だこりゃ?

探しましたがな。
John Wallis(1616/11/23-1703/10/28) の Arithmetica Infinitorum (1656)に出てくる、いわゆるウォリス積


かっちょよく書くと

無限乗積だ!こりやぁ収束遅いわ。式はとっても美しいんだけど。ちょっと見てみる?
Wallis
ここがexcel2010の底だよー。初めて見たでしょ。

Excel2010の行を使い尽くしてみた。超弩級に重たい。D列が近似値で、E列が真値との誤差。1,048,573回回しても小数点以下5桁までしか正しくないことが分かる。

何故、斯様な式を examples としたのか、全く意図がわからない。関孝和遺編「括要算法 貞」の、355/113 = 3.141592920・・・の方がよっぽどましだ。

ちなみに、おなじみ、Machinの公式。

Machin


arctan をTaylor展開する。9回回して小数点以下14桁をクリア。

いつもの「GNU/Linux上で円周率の計算をおこなうLink 」は、Gauss AGM。
初期値

に対し

を行うと円周率の近似値は

Gauss_AGM


わずか3回のループで小数点以下14桁をクリア。実はこの時点で小数点以下18桁までクリアしている。このアルゴリズム、pn が曲者で、1024ループあたりで変数がオーバーフローしてしまう。浮動小数点で計算するのはこの辺が限度ということだ。

実際の多桁円周率計算は、多倍長整数で計算しなければならない。

最近のトレンドは、Chudnovsky algorithm だそうな。



一項目、640320^(3/2) / 12 / 13591409 を電卓で計算すると、3.1415926535897342076684535915783・・・すげ!
二項目で27桁まで計算できちゃうみたい。

円周率を1億桁計算しました! — その試行錯誤の詳しい経緯と結果Link  プログラムモグモグ itchynyさん

Machin と Gauss_AGM の xlsx ファイルを下に置いとくので好きにして頂戴。Wallis は、70MByteもあって、ppblog に撥ねられちゃったので断念。残念。

「ウォリス一万尺」バージョンを置いときました。小数点以下3桁あたりをうろちょろしています。最終行を思う存分コピーしてください。パソコン固まっても知らないよ。自己責任。





 

— posted by nitobe at 05:59 pm   commentComment [0]  pingTrackBack [0]

XPS8300 で pi を計算する


灯台下暗し。母艦の測定してなかった。
ubuntu_pi


ubuntu12.04/OracleVirtualBox/Windows7/DellXPS8300/IntelCorei7-2600 での円周率百万桁の実力。8.742[sec]

Corei7-2600コア4発スレッド8発のうちの一発を使用している。と、思われる。

 

— posted by nitobe at 11:46 pm   commentComment [0]  pingTrackBack [0]

Nexus 7 で pi を計算する


いつもの「GNU/Linux上で円周率の計算をおこなうLink 」を行おうと思う。以下、root 奪取済みが前提の記述。

当初、
C4droid (C/C++ compiler)Link  n0n3m4
GCC plugin for C4droidLink  n0n3m4
でやってみようと思ったのだが、gmpライブラリの扱いが厄介だったので、方向転換。

Linux Installer STANDARDLink  Galoula
で、Nexus 7 上に、debian の環境を構築し、そこでコンパイルを実施した。
ConnectBotLink  Kenny Root and Jeffrey Sharkey
Hacker's KeyboardLink  Klaus Weidner
等をインストール。

Nexus 7 上に、debian Squeeze を展開、chroot で実行するという寸法だ。
debian が走ってしまえばこっちのもの。
ConnectBot で Local(Nexus 7)にログインして、
linuxchroot

aptitude update
aptitude install useradd
aptitude install sudo
aptitude install gcc
aptitude install make
aptitude install m4
aptitude install ftp
aptitude install wget
aptitude install ssh
aptitude install rsync

wget ftp://ftp.gnu.org/gnu/gmp/gmp-4.2.2.tar.gzLink 
tar zxvf gmp-4.2.2.tar.gz 
cd gmp-4.2.2
./configure
make
make install

useradd nitobe
gpasswd -a nitobe sudo
login nitobe
mkdir pi
cd pi
sudo rsync -avz -e ssh nitobe@sheevaplug:/home/nitobe/pi/pi.c .
cc -static -O2 -I/usr/local/include pi.c -o pi /usr/local/lib/libgmp.a
time ./pi > ./pi.txt
ってな具合。記憶だけを頼りに打ち込んだコマンドを再現したが、漏れがあるやもしれません。最近アルツ気味の新渡戸感ぴゅーたですから。
20121103-020552



こちらは nexus 7 コマンドラインで実行したもの。ConnectBot じゃなく、Android Terminal EmulatorLink (Jack Palevich)。違う端末だが、別に深い意味はない。二行目は、debian をアンマウントして再実行。変化はない。

20121103-021824



Nexus 7 > SheevaPlug > RaspberryPi だね。二万円 > 一万円 > 三千円 ってことだ。
ときに nexus 7 は、4コアだったはずだが・・・。このプログラムはマルチスレッド用じゃないから、コア一発分だね。たぶん。

ところで、キーボードがでかい。いよいよ外付けか?何のためのタブレットだか分からなくなるなぁ。このでかいけどちゃっちいキーボードでそこそこ出来ちゃうんだよなぁ。結構使えるHacker's Keyboard!

うわっ!2時過ぎた。

   

— posted by nitobe at 02:30 am   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0337 sec.
prev
2012.11
next
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
 
strawberry-linux geigercounter Ver.2
Sibasaki, Cyofu City, Tokyo, JAPAN
blogBar