円周率.jp > 計算プログラム > 計算プログラム紹介

計算プログラム紹介

ここでは円周率計算を 1 万桁以上の桁数計算できる, インターネット上で入手可能なプログラムを紹介する. プログラムの名前を付けず公開しているものについては, 当ページ管理人が勝手につけた仮称に(仮)をつけて表記する.

また,参考までに 1677 万桁計算するのにかかった時間を記載しておく. 計算環境は CPU が Pentium4 3.4GHz(ハイパースレッディングにより 2 コア扱い),メモリが 1GB (DDR2, 333MHz) の Windows Vista(64bit) で,GMP 環境については cygwin 上で gmp-5.0.1 を利用している. 1 回ずつしか計測していないため,再度実験したり, 別の環境で実行したりする場合は少々の時間差は逆転する可能性がある.

目次と概要

プログラム名 製作者 対応OS/環境 限界桁数 使用公式 計算時間
y-cruncher
[解説] [Site]
Alexander J. Yee Windows 10T ChudnovskyRamanujan 38s
TachusPI
[解説] [Site]
F. Bellard Windows(64bit) / Linux(64bit) 2.7T ChudnovskyRamanujan 33s
Quick pi
[解説] [Site]
S. Pagliarulo Windows 70G Chudnovsky 47s
pifast
[解説] [Site]
X.Gourdon Windows/hpux/irix/AIX 16G Chudnovsky 1m20s
superπ
[解説] [FTP]
東京大学金田研究室 Windows,Mac OSX,Linux(x86/Itanium/Alpha), Free BSD,Solaris,hpux,irix,True64,AIX(Power) 33M Gauß-Legendre 16m03s
GMP-Chudnovsky(仮)
[解説] [Site]
Hanhong Xue GMP Chudnovsky 1m23s
GMP-GL
[解説] [Site]
すずきひろのぶ GMP Gauß-Legendre 4m49s
Ooura(仮)
[解説] [Site]
大浦拓哉 (Windows) Gauß-Legendre 2m42s

y-cruncher (Alexander J. Yee)

マルチスレッド対応の Windows 用π計算プログラム. 2010 年の 5 兆桁計算で使われた. プログラムの大部分は C++ で記述されているが,部分的に SSE(SSE3, SSE4.1) を用いた高速化や,WinAPI を用いたマルチスレッドが実装されている. また,高速に演算を行うためには SSE 命令の対応やキャッシュメモリに合わせた調整が必要であるが, プログラム開始時に自動的に行ってくれる.

計算公式に Chudnovsky の公式と Ramanujan の公式が利用できたり, 円周率以外にも,e や log 2,log 10, ζ(3), カタラン数,オイラー数γ,などが計算できるため, 時間さえかければ全桁計算での検証もできる.

TachusPI (F. Bellard)

2009 年の 2.7 兆桁の世界記録計算に用いられたプログラム. 名前の Tachus は古代ギリシア語で「速い」を意味する単語らしい. 64bit Windows 版も存在するが,非同期 I/O が実現できないために ディスクを使う計算では Linux 版より若干遅い. ちなみに計算が遅くなるのは嫌だ,という理由で 32bit 版は作らない. CPU は SSE3 対応が必須. マルチコア CPU ではコア数までマルチスレッドで計算できる.

Quick pi (S. Pagliarulo)

マルチスレッド対応.

pifast (X.Gourdon)

πの他,有理級数で定義できる定数なら計算できる.

superπ (東京大学金田研究室)

自作 PC のベンチマーク定番の superπ. Windows だの Mac OSX だの BSD だの Linux だの, いろいろな環境で実行できる数少ない例. 端的に言えば,そういう環境でコンパイルすればいいだけなのだが, このように多くの環境を用意するのは難しい.

GMP-Chudnovsky(仮)

プログラムソースで配布されている. GMP を用いてコンパイルできる.

Binary splitting を用いた計算をしており, 適宜約分することで計算量を削減するという工夫を行っている. そのために各要素の素因数分解テーブルも作成している.

GMP-GL (すずきひろのぶ)

GMP-Chudnovsky と同じく,ソースで配布…というより Web ページにソースがそのまま書かれている. GMP を用いてコンパイルする.

Ooura(仮) (大浦拓哉)

FFT のライブラリチェックを兼ねたプログラム. そのため C 言語のプログラムをコンパイルできる環境さえあれば自由に実行できる. Windows だけはコンパイルしたものも配布している.