(1)実行環境
マシン:Raspberry Pi2
O S:Raspbian
(2)円周率計算プログラムについて
前回と同じく、GMPの「Compute billions of digits of π using GMP!」にあるgmp-chudnovsky.cを使用させて頂きました。
(3)GMPライブラリと円周率計算プログラムのダウンロード、コンパイル
作業フォルダ"pi"を作成し、そこにGMPライブラリと円周率計算プログラムをダウンロード、コンパイルします。
$ mkdir pi $ cd pi $ wget https://gmplib.org/download/gmp/gmp-6.1.0.tar.xz $ tar xvf gmp-6.1.0.tar.xz $ cd gmp-6.1.0/ $ ./configure $ make -j4 $ make -j4 check $ cd .. $ wget https://gmplib.org/download/misc/gmp-chudnovsky.c $ cc -Wall -static -O2 -o gmp-chudnovsky gmp-chudnovsky.c -Igmp-6.1.0 -Lgmp-6.1.0/.libs -lgmp -lm
(4)円周率計算プログラムの実行
・円周率1,000桁
円周率表示ありで0.01秒以下でした。
$ time -p ./gmp-chudnovsky 1000 1 #terms=70, depth=8 sieve time = 0.000 ................................................... bs time = 0.000 gcd time = 0.000 div time = 0.000 sqrt time = 0.000 mul time = 0.000 total time = 0.000 P size=1334 digits (1.334000) Q size=1327 digits (1.327000) pi(0,70)= 0.314159265358979 …省略 real 0.00 user 0.00 sys 0.01
・円周率100万桁
円周率表示なしの計算のみで6.15秒でした。
$ time -p ./gmp-chudnovsky 1000000 #terms=70513, depth=18 sieve time = 0.070 .................................................. bs time = 4.480 gcd time = 0.000 div time = 0.790 sqrt time = 0.420 mul time = 0.300 total time = 6.060 P size=1455608 digits (1.455608) Q size=1455601 digits (1.455601) real 6.15 user 6.06 sys 0.09
(5)pi2とB+の比較
-
【条件】
- 円周率表示なし
- gmp-6.1.0
- 円周率プログラム https://gmplib.org/download/misc/gmp-chudnovsky.c
- コンパイルオプション $ cc -Wall -static -O2 -o gmp-chudnovsky gmp-chudnovsky.c -Igmp-6.1.0 -Lgmp-6.1.0/.libs -lgmp -lm
桁 Pi2 B+ ======= 1e3 0.01 0.02 1e4 0.03 0.05 1e5 0.36 0.70 1e6 6.14 13.25 1e7 105.93 235.95 1e8 1,721.64 -(GNU MP: Cannot allocate memory)
・Pi2はB+に比べ2倍程度早いです。 ・B+はメモリ不足で1億桁の計算ができませんでした。
0 件のコメント:
コメントを投稿