アカウント名:
パスワード:
毎回ひとけた目から計算って、なんかもったいない。
前回結果をサーバーにアップロードし、次回はそこから400万桁を計算とかすると未知の領域までいけるんじゃないでしょうか。
それがそうでも無いんですよ。
binary splitting を使うと、過去の計算結果を有効利用することは可能です。挙げられた資料中にもありますが、円周率の計算は最終結果が出るまで分数の形式で保存しているわけですが、10兆桁の計算をする時には、前半5兆桁の計算結果と後半5兆桁分の計算結果から計算するような形になります。(厳密にはもうちょっと複雑ですけど)
データ量がたくさん必要なのは確かにそうなのですが、最終結果の直前のデータだけ取っておけばいいので、大体求めた円周率のデータの5倍くらいです。
なので、ゼロから計算し直すのに比べると、三分の一位の時間は節約できるんじゃないですかね。
実際のところ結果をまとめる一か所で行う計算が結構時間がかかるので、あまり分散には向かないですけどね。再帰的にある程度の塊に分割して結果をやり取りすることは可能ですけど、ネットワーク越しにデータをやり取りするコストを考えると、手元で計算したほうが早い感じです。
#世界記録級の円周率の計算なんて、CPU のベンチマークというよりも、メモリやディスクI/O のベンチマークをしているようなものですけど。
それ(前回結果をサーバーにアップロードし、次回はそこから)で効率の良いアルゴリズムだったら検討に値するのでしょうが、現状は考慮に値しないアイディアということで雑談終了になるのではないかと思います。
著作権侵害で逮捕されますよ
素朴な疑問なのですけれども。自動生成された数字の羅列について、著作権は成立するのですか?(著作者は誰ですか?)しかも、いつも同じ値になる(同じ値にならなければならない)数字なのに。
http://www.faireal.net/articles/4/23/#d60401 [faireal.net]
数年前に出たエイプリルフールネタなのだけどな。マイナスモデした人も知らんのだろうな。
名誉回復コメントおつ。(#2407378) [srad.jp]に(#2407582)で示したリンクがあればオフトピックはまだしも荒らしの評価は避けられたと思うよ。広く紹介されて記憶に長くとどまるほどウケたジョークでなかったわかりにくかったんじゃないでしょうか。
スーチーパイの方を連想した。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー
スーパーPi クラウド対応できませんかね? (スコア:0)
毎回ひとけた目から計算って、なんかもったいない。
前回結果をサーバーにアップロードし、次回はそこから400万桁を計算とかすると
未知の領域までいけるんじゃないでしょうか。
Re:スーパーPi クラウド対応できませんかね? (スコア:2, 参考になる)
P.10に「nを1つ進めるごとに約14桁精度が上がる」とあるので、大ざっぱには、X/14個の小数点以下X桁の値を計算し、
それらを全部を足したら、X桁目まで正確なπになるとかそういう感じ。
表で考えると、縦がX/14行、横がX列の表を作って、その各枠に入る数字を全部求めれば良いことになる。
例えば、この方法で140桁の円周率を求めたとすると、縦10行、横140列の表が完成する。
次の140桁まで正しい280桁の円周率を求めようとすると、必要となる表は縦20行、横280列。
最初の表を使い回せたとしても、それが出来る部分は割と少なくなる。
ついでに、「表のある行の左半分は使い回せるから、右半分だけ新たに計算する」と言うのが原理的に難しい。
それは、各行を求める際に必要となる掛け算やらにあれこれと特殊な方法を使ってるからで、
そこを頑張るよりは、新たに計算し直した方が早い。
あるいは右半分だけ計算するような高速化法があったとしても、
そもそも、表のサイズがばかでかくて覚えておくべきデータ量が大きすぎるので、
その工夫をしない方がトータルとしては安く仕上がる。
なにしろ、使い回しをしないのなら、上で言ったような表の全体が一度に揃っている必要は実はなくて、
1行分の計算が終わったら、その行のデータは棄ててしまっても問題無い。
そうすると、表の1行分に当たるメモリかハードディスク容量だけで事足りる。
と言う辺りが最前線だと思う。
Re:スーパーPi クラウド対応できませんかね? (スコア:2)
それがそうでも無いんですよ。
binary splitting を使うと、過去の計算結果を有効利用することは可能です。
挙げられた資料中にもありますが、円周率の計算は最終結果が出るまで分数の形式で保存しているわけですが、
10兆桁の計算をする時には、前半5兆桁の計算結果と後半5兆桁分の計算結果から計算するような形になります。
(厳密にはもうちょっと複雑ですけど)
データ量がたくさん必要なのは確かにそうなのですが、最終結果の直前のデータだけ取っておけばいいので、
大体求めた円周率のデータの5倍くらいです。
なので、ゼロから計算し直すのに比べると、三分の一位の時間は節約できるんじゃないですかね。
Re:スーパーPi クラウド対応できませんかね? (スコア:1)
Re:スーパーPi クラウド対応できませんかね? (スコア:1)
実際のところ結果をまとめる一か所で行う計算が結構時間がかかるので、あまり分散には向かないですけどね。
再帰的にある程度の塊に分割して結果をやり取りすることは可能ですけど、ネットワーク越しにデータをやり取りするコストを考えると、手元で計算したほうが早い感じです。
#世界記録級の円周率の計算なんて、CPU のベンチマークというよりも、メモリやディスクI/O のベンチマークをしているようなものですけど。
Re:スーパーPi クラウド対応できませんかね? (スコア:1)
それ(前回結果をサーバーにアップロードし、次回はそこから)で効率の良いアルゴリズムだったら検討に値するのでしょうが、現状は考慮に値しないアイディアということで雑談終了になるのではないかと思います。
Re:スーパーPi クラウド対応できませんかね? (スコア:1, おもしろおかしい)
著作権侵害で逮捕されますよ
Re: (スコア:0)
素朴な疑問なのですけれども。
自動生成された数字の羅列について、著作権は成立するのですか?(著作者は誰ですか?)
しかも、いつも同じ値になる(同じ値にならなければならない)数字なのに。
Re: (スコア:0)
http://www.faireal.net/articles/4/23/#d60401 [faireal.net]
数年前に出たエイプリルフールネタなのだけどな。
マイナスモデした人も知らんのだろうな。
Re:スーパーPi クラウド対応できませんかね? (スコア:1)
名誉回復コメントおつ。(#2407378) [srad.jp]に(#2407582)で示したリンクがあればオフトピックはまだしも荒らしの評価は避けられたと思うよ。広く紹介されて記憶に長くとどまるほどウケたジョークでなかったわかりにくかったんじゃないでしょうか。
Re:スーパーPi クラウド対応できませんかね? (スコア:1)
スーチーパイの方を連想した。