(1)実行環境について
マシン:Raspberry Pi B+
O S:RASPBIAN(2015-02-16版)
(2)円周率計算プログラムについて
GMPの「Compute billions of digits of π using GMP!」にあるgmp-chudnovsky.cを使用させて頂きました。
(3)GMPライブラリと円周率計算プログラムのダウンロード、コンパイル
作業フォルダ"pi"を作成し、そこにGMPライブラリと円周率計算プログラムをダウンロード、コンパイルします。
$ mkdir pi $ cd pi $ wget https://ftp.gnu.org/gnu/gmp/gmp-6.0.0a.tar.xz $ tar xvf gmp-6.0.0a.tar.xz $ cd gmp-6.0.0/ $ ./configure $ make -j4 $ make -j4 check $ cd .. $ wget https://gmplib.org/download/misc/gmp-chudnovsky.c $ cc -Wall -static -o gmp-chudnovsky gmp-chudnovsky.c -Igmp-6.0.0 -Lgmp-6.0.0/.libs -lgmp -lmraspbianデフォルトの状態では"m4"が入っていないためconfigureがエラー終了します。その場合は"sudo apt-get install m4"でm4をインストールします。その後、もう一度./configureを実行します。
GMPのコンパイルは小一時間かかります。(Raspberry Pi B+の場合)
(4)円周率計算プログラムの実行
・円周率1,000桁
円周率表示ありで0.03秒でした。
$ time -p ./gmp-chudnovsky 1000 1 #terms=70, depth=8 sieve time = 0.000 ................................................... bs time = 0.010 gcd time = 0.000 div time = 0.000 sqrt time = 0.000 mul time = 0.000 total time = 0.010 P size=1334 digits (1.334000) Q size=1327 digits (1.327000) pi(0,70)= 0.314159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019894e1 real 0.03 user 0.01 sys 0.00・円周率100万桁
円周率表示なしの計算のみで14.74秒でした。
$ time -p ./gmp-chudnovsky 1000000 #terms=70513, depth=18 sieve time = 0.150 .................................................. bs time = 10.910 gcd time = 0.000 div time = 1.800 sqrt time = 0.970 mul time = 0.730 total time = 14.580 P size=1455608 digits (1.455608) Q size=1455601 digits (1.455601) real 14.74 user 14.58 sys 0.09
0 件のコメント:
コメントを投稿