円周率10兆桁!会社員が計算…世界記録更新(読売)
今回もちょっと調べてみたのですが、円周率に明るくない人がいるようなので、ちょっと基本を押さえてみましょう。
・円周率は円周と直径の比率のことで、(円周)=(直径)x(円周率)で表されます。
・円周率は無理数であることが証明されているので、無限に計算しても割り切れません。
・二つの有理数a,bの比率(b/a)で表せない数字を無理数と言います。
・ちなみに有理数は二つの整数A,Bの比率(B/A)で表す事のできる数です。
・実際に1から計算しなくても特定の桁数を検算するためのアルゴリズムが存在します。
現在ではBBPアルゴリズムが使われるそうです。1995年発案だそうですが、こんな衝撃的なアルゴリズムがあったとは驚きです。そして、その事をまったく知らなかった「元数学科」の自分。ハズカシーッ(////)
この先は円周率ではなく情報のお話。
計算したデータの保存には単純に10[兆B]=10[TB]が必要です。ちなみに10[TB]のHDDは1kB=1024Bで計算するので約9.1TBにしかなりません。管理領域も必要になるので実際には更に少なくなります。
0〜9の数値だけなら4bitで表現できるので、1B(=8bit)に2桁の格納が可能です。これなら容量は半分で済む計算に。数字の並びに規則性が無いのでこれ以上の圧縮は期待できません。(最初の1億桁では圧縮率48%弱でした)
また、計算量が膨大になってくると単純な信号の入出力エラーやビット反転もバカになりません。エラー訂正不能なエラーの発生比率が80兆回に1回だとしても、10兆桁の書き込みの最中に1回はエラーが起こる事になります。データ自身は何度かメモリやCPUを経由するでしょうから、書き込み作業はこの数倍になる事でしょう。
時間はかかりますが桁数が桁数だけに2回計算して一致したときだけ書き込む処理や、ベリファイ(計算データと書き込みデータの照合)くらいはしてるとは思いますが。 以上、基本終わり。 学生のプログラムと会社員の自作パソコンでよくぞここまで計算できたものです。もちろん、この計算結果にはロマンと自己満足くらいの意味しかないはずです。数学に貢献する事も無いでしょう(新しいアルゴリズムの発見は別です)。
しかし、このスペックがあればこのくらいの事ができるという指標にはなるはず。PCが既製品で構成されているのなら、それは私たち自作派には十分な資料になりうるのです!
だというのに、どのニュースサイトを見てもPCのスペックがHDD容量くらいしか載ってないのはどういうことでしょう(^^;
個人的にこの手のニュースがあったときに欲しい情報は「PCのスペック」「使用した計算アルゴリズム」「実計算時間」くらいだと思うんですけど違うのかなぁ。
y-cruncher - A Multi-Threaded Pi-Program 昨日まで載ってなかったのに、今リロードしたら記録が更新されていました。これがそのスペックです!
2 x Intel Xeon X5680 @ 3.33 GHz , 96 GB DDR3 @ 1066 MHz , 24 x 2 TB |
おおおおおお。12コア、24スレッド。5兆桁のときに比べるとHDDを2TBを8台増設しただけですね。メインメモリはもっと高速なものに変えたいところですが、96GBのメモリの換装は正直ゾッとしますw それに6チャンネルとか十分に高速か。
詳しいスペックを見ると48TBの他に起動用1TB+円周率出力用10TBが別にある様子。SATAのケーブルが30本w
システム構成が高額過ぎて参考になりませんっw この自作が許されるなら、月3万円の電気代も笑って許してくれそうです>奥様
実作業時間はこの半分くらいだという噂ですが、計算371日、検算に45時間となっています。
計算に使われたアルゴリズムは良く分かりませんでしたが、マチンの公式かシュトルマーの公式ですかね?
近藤さんのHPに記載のあった、収束の早そうな公式といえば。
数学には貢献しない記録かもしれませんが、少なくとも僕にとってはBBPアルゴリズムに引き合わせてくれた恩人かもしれません。まだろくに検証していませんが、
ピンポイントで狙った桁数(ただし16進数表記)の数字が得られるとか、今まで考えた事もありませんでした。
もし狙った桁数から先の計算が可能になるとしたら、グリッドコンピューティングでとんでもない記録が飛び出すはずです。ちょっと先が楽しみになってきたかも(^^