パスワードを忘れた? アカウント作成
181046 story
数学

円周率計算の記録更新、使われたのはなんとデスクトップPC 91

ストーリー by hylom
116日間フル稼働というのもすごい 部門より

TarZ 曰く

円周率π計算の桁数の記録が更新された。計算機の進歩とともに記録は更新されるものだが、今回の記録更新で使われたのはスーパーコンピュータではなく、なんと1台のデスクトップPCなのだそうだ(本家記事:New Pi Computation Record Using a Desktop PC、元ネタ:Pi Computation Record)。

今回の計算で達成した桁数は、約2兆6999億桁。前回の記録は昨年、筑波大・計算科学研究センターで達成された約2兆5769億桁なので、1200億桁ほどの記録更新となる。

元ネタのPress Releaseによると、計算に使われたマシンの主なスペックは以下の通り。

  • CPU:Core i7(2.93GHz)
  • メモリ:6GB
  • HDD:7.5TB(1.5TB×5)

PC自体は2000ユーロ(25~26万円程度)のもので、OSにはLinux、π計算プログラムは独自に作られたもの。

どのように計算したのか、どれくらいの時間がかかったのか、いろいろと疑問に思う点があるが、そのあたりはFAQに詳しい情報がある。それによると、円周率計算で直接かかった時間は116日間で、もちろんスーパーコンピュータよりも時間は長い。また、計算式自体も、前回の筑波大の記録で使われた公式よりも収束が遅いものを使ったという。しかし、CPUキャッシュを効率よく利用する、といった「1台のPCならでは」の工夫によって、計算効率自体は非常に高いものになっているとのこと。

なお、計算が正しく行われたかの検証は、全桁についてチェックしたわけではなく、πの16進表記で最終50桁についてのみ行われたようだ(10進や16進表記で、πのある桁以降についてのみ直接計算できる公式がある)。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 計算公式 (スコア:5, 参考になる)

    by messier42 (36151) on 2010年01月06日 1時14分 (#1698322) ホームページ 日記

    上記のソース読んでみましたが、80年代~90年代に頻繁に記録更新に使われた

    > http://xn--w6q13e505b.jp/history/computer.html [xn--w6q13e505b.jp]

    Chudnovskyの公式のようですね。級数をテイラー級数ですなおに計算すると時間がかかりすぎ
    高精度計算できませんがBinary Splitting法を使った加速により短時間で計算できたようです。
    この手法は、2002年時点の世界記録である、高野喜久雄の公式を使った計算でも使われました。

    いやしかし家庭用PCでも100日間以上も高負荷運転して、よく安定して動くもんですね。
    ちょっとびっくり。それもRAID0で計算したと書いてあったりするし…

  • by new release (37404) on 2010年01月05日 20時37分 (#1698149) 日記
    これ、昨年夏の筑波の発表と同時期に始めて、年末で抜いてしまったのですね。
    計算そのものは 103日
    ベリファイに 13日
    10進変換に 12日
    変換のチェックに 3日
    トータル 131日
    って、計算自体は3ヶ月ちょっとで終わっているのね。 すごいなあ。
    • by Anonymous Coward on 2010年01月05日 20時48分 (#1698156)

      本家に書かれていますが、これを達成したFabrice BellardさんはLZEXEやffmpegやQEMUの原作者で、1997年にも円周率の世界記録を打ち立ててる人です。
      本当にすごい。

      親コメント
      • by Anonymous Coward

        凄いとしか言えないな・・・。
        世の中にはこんな人もいるんだよな。温い事言ってないで精進しなきゃ。

      • by Anonymous Coward

        なんと、ファブリーズたんでしたか(数年前の一時期に2chのOS板を見てた一部の人ぐらいにしか通じない)
        相変わらずブッ飛びすぎです、あの人は。

  • 仕分けされそうです (スコア:2, すばらしい洞察)

    by Anonymous Coward on 2010年01月05日 19時18分 (#1698118)
    こりゃまた仕分けされそうです。
    • Re:仕分けされそうです (スコア:3, すばらしい洞察)

      by tks256 (30608) on 2010年01月06日 18時33分 (#1698747)

      「時間をかければ確実に一発で正しい答えが出る」
      のであれば、スパコンの意味を疑うのも仕方がないですが、
      「時間がかかる計算を利用してトライ&エラーする」
      ような研究であれば、半年もの間結果を待つ行為の方が無駄じゃないですかね。

      親コメント
    • by Anonymous Coward

      いや、世界一のスパコンで行った訳じゃないので実績は得られない筈。

      実績が出せるのは唯一世界最速のコンピューターのみの筈だからねー。

    • by Anonymous Coward

      仕分けられるべきはパソコンによる計算に負けちゃう
      東大の金田先生ではないかと
  • by NOBAX (21937) on 2010年01月06日 17時00分 (#1698689)
    20年くらい前の話ですが、家庭で、PCを何に使うのかという仲間内の話題があって、
    一人の人が。天体望遠鏡のレンズの設計計算に使っているというのがありました。
    電源入れたら、半年位、ひたすら計算させて、出力結果に基づいて、レンズ屋さんに
    磨いてもらうのだそうです。
    そんな使い方があるものかと感動したものです。
    • by tks256 (30608) on 2010年01月06日 18時30分 (#1698746)

      是非そのお仲間さんに伺いたいのですが、
      20年前に半年かかった計算は、
      今どのくらいで終了するんですかね?

      親コメント
      • 20年前のパソコンというと 80386/20MHz 位か。

        クロックで 150倍、IPC が 4倍くらい上がってるとして 600倍。

        24 * 365 * 0.5 /600 = 7.3時間。

        さらにクアッドコアだと……なんかウォーズマン vs バッファローマン思い出した。

        20年前だと FPU 付けてないのが一般的だから、
        それを加味するとさらにとんでもない倍率に。
        もう分単位じゃないかな。

        --
        TomOne
        親コメント
    • by Anonymous Coward on 2010年01月06日 21時45分 (#1698832)

      富士写真フイルムのFUJIC [wikipedia.org]の目的そのものですね。
      家庭用が代替になったという点でも今回のネタと共通してて面白いです。

      親コメント
  • by shibuya (17159) on 2010年01月05日 18時06分 (#1698097) 日記
    LinuxデスクトップPCで1/3年回せば世界記録が出せるという目標設定とミッション成功が本人には楽しいですね。
    外野としては検算が楽しみ。どんな計算機で検算するかも込みで。
    • Re:ほー (スコア:2, 興味深い)

      by Anonymous Coward on 2010年01月05日 20時53分 (#1698159)

      単純に時間さえかければ記録を塗り替えられる、
      それも何十年とか何百年ではなくて1年弱で達成できるなら、スパコンよりデスク
      トップPCの方が有利なこともあるってことですかね。

      なにしろスパコンは高価であるがゆえに、円周率計算のような「無駄な」作業に
      何日も何週間も割り当てておくことができないから。最後はお金との戦いに
      なりそう。

      デスクトップPCで一番恐いのはハングアップや停電かな。電源入れっぱなしで
      何ヶ月も連続稼働させて、あと一歩の所でブルースクリーンが出たりしたら
      目も当てられない。

      親コメント
      • by okky (2487) on 2010年01月06日 13時30分 (#1698547) ホームページ 日記

        仮想化して、定期的にスナップショットを取ったらどうだろう…1からやり直しよりはかなりましな状態になる気がする。

        あとは…この手のプログラムなら、gcore でコアを定期的に吐かせる、と言うのも手かと。
        停電等起こったら、gdb でプログラムと core ファイルを使って途中から実行再開。

        --
        fjの教祖様
        親コメント
        • Restartability (スコア:4, 参考になる)

          元ネタの本のページの Technical Notes (PDF形式)にちゃんと書いてありますよ。

          アプリケーションレベルでチェックポインティングをやっているそうです。
           

          2.4 Restartability
          When operands are stored on disk, each step of the computation is implemented so that it is restartable. It means that if the program is stopped (for example because of a power loss or a hardware failure), it can be restarted from a known synchronization point.

          --
          コンタミは発見の母
          親コメント
        • by Anonymous Coward

          元ACだけど、短時間の停電については普通にUPSくらいは付けてるでしょうね。
          ただ、大規模停電にまで対応できるかとなると……。

          仮想化やバックアップについては、パフォーマンスの問題もあるから難しいかも。

      • by Anonymous Coward

        あと一歩の所でブルースクリーンが出たりしたら目も当てられない。

        15年近く Linux 使ってますけど、ブルースクリーンなんて見たことがない (グラフィックドライバがタコで、固まるのはあったけど ;-)。

        • Re:ほー (スコア:1, おもしろおかしい)

          by Anonymous Coward on 2010年01月06日 14時05分 (#1698563)

          青一色じゃありませんが、全体に青っぽくなったことはあります。

          #VGA コネクタが抜けかけて、R の信号だけ途絶えてた

          親コメント
  • 息子のデスクトップPCで (スコア:1, おもしろおかしい)

    by Anonymous Coward on 2010年01月05日 18時53分 (#1698107)

    スパコンよりたくさん円周率を計算できるというプログラムのソースコードの入れ方をどなたかご存知ですか?私にはさっぱり…。

  • CPU:Core i7(2.93GHz)
    メモリ:6GB
    HDD:7.5TB(1.5TB×5)

    なにこのモンスターマシン

    #そりゃスパコンとは比べるべくもないですが...

  • π − πの計算 アルキメデスから現代まで− [kyoritsu-pub.co.jp]に”16進表記で、πのある桁以降についてのみ直接計算できる公式”=BBP公式が載ってます。

  • 数学に現れる興味ある定数に関するWEBサイトMathematical Constants and computation [computation.free.fr]に新しい数学定数の多倍長計算記録が出るごとに報告されています。以下のページ:
    What's New - What's Changed - What is new or what is changed in the world of Numbers, Constants and Computation. [computation.free.fr]
    今回の記録も報告されています。

    ご参考まで

  • by Anonymous Coward on 2010年01月06日 14時01分 (#1698559)

    スパコンのベンチマーク・動作確認として円周率計算を行うのは
    分かるがPCでやることに意味があるのかな?

    あと円周率の計算よりもメルセンヌ素数の探索の方が、人類の役
    にたつような気がする。

    • Re:ベンチマーク (スコア:3, すばらしい洞察)

      by Anonymous Coward on 2010年01月06日 14時06分 (#1698565)

      スパコンのベンチマーク・動作確認として円周率計算を行うのは
      分かるがPCでやることに意味があるのかな?

      あと円周率の計算よりもメルセンヌ素数の探索の方が、人類の役
      にたつような気がする。

      意味があるならみんながやってるだろ・・・
      趣味に決まってるだろ・・・

      親コメント
    • Re:ベンチマーク (スコア:2, すばらしい洞察)

      by Anonymous Coward on 2010年01月06日 22時12分 (#1698847)
      円周率の計算で大事なのは手段や過程。計算結果で新しいのは更新した部分だけだから、更新できない場合には、計算結果は意味を持たない。

      今回の件で特に意味があるのは、PCでも時間さえかけられるのであれば、スパコン以上の結果を出せることを実証したこと。

      あとは、新しいアルゴリズムを開発すれば学術的な価値があるし、そうでなくても自己研鑽にはなる。そのうちの数パーセントでもいいから、世のために役立つことに使えるのなら、なおさら良いこと。

      役に立たないならやるなとか言い出すと、学校の勉強は役に立たんから、家業を手伝えと言うのと同じレベルになります。
      親コメント
      • >PCでも時間さえかけられるのであれば、スパコン以上の結果を出せる

        そりゃ 100倍遅いマシンでも 100倍時間を掛ければ良いってのは当たり前。
        スパコンってのは時間を金で買ってるわけだから。

        --
        TomOne
        親コメント
  • by Anonymous Coward on 2010年01月06日 14時06分 (#1698564)
    2つの独立したアルゴリズムによる全桁の検証をおこなってないから,これは新記録ではない
    勝手に新記録と言い張っているか,まわりが勝手に新記録と呼んでいるだけ
    検証が無ければ科学的・学術的な価値はまったく無い
    • by Anonymous Coward on 2010年01月06日 20時07分 (#1698791)
      > 2つの独立したアルゴリズムによる全桁の検証をおこなってないから

      それを言い出すと東大や筑波大の記録更新の検証計算も怪しいですよ(w

      東大や筑波大が記録更新および検証に使っている

        - ボールウェインの 4 次の収束アルゴリズム
        - ガウス・ルジャンドルアルゴリズム

      は独立したアルゴリズムではありません。数学的な話はおいておいて、数値計
      算すると直感的にわかります。以下Mathematicaで数値計算した結果を挙げて
      おきます。

      (* ボールウェインの 4 次の収束アルゴリズム。*)

      (* 初期値の設定。有効桁は100桁を指定。 *)
      y=N[Sqrt[2]-1,100]
      a=N[6-4 * Sqrt[2], 100]

      (*2回繰り返し計算する*)
      y=(1 - (1-y^4) ^ (1/4)) / (1 + (1-y^4) ^ (1/4))
      a=((1+y)^4 * a) - (2 ^ 3) * y * ( 1 + y + y^2)

      y=(1 - (1-y^4) ^ (1/4)) / (1 + (1-y^4) ^ (1/4))
      a=((1+y)^4 * a) - (2 ^ 5) * y * ( 1 + y + y^2)

      (*計算終わり。iが円周率の近似値になる *)
      i=1/a

      (*ガウス・ルジャンドルアルゴリズム*)

      (* 初期値の設定。*)
      a = N[1,100]
      b = N[1 / Sqrt[2],100]
      t = N[1 / 4,100]

      (* 4回繰り返し計算する *)
      an = a; a = (a + b) / 2; b = Sqrt[an * b]; t = t - (an - a) ^ 2
      an = a; a = (a + b) / 2; b = Sqrt[an * b]; t = t - 2 * (an - a) ^ 2
      an = a; a = (a + b) / 2; b = Sqrt[an * b]; t = t - 4 * (an - a) ^ 2
      an = a; a = (a + b) / 2; b = Sqrt[an * b]; t = t - 8 * (an - a) ^ 2

      (*計算終わり。jが円周率の近似値になる *)
      j=(a+b)^2/(4*t)

      (*円周率の正確な値とのエラーを比較 *)

      CForm[Pi - i]

      (* 出力例: 5.4721091456899418327485331789641785565936917028247615519e-41 *)

      CForm[Pi - j]

      (* 出力例: 5.4721091456899418327485331789641785565936917028247615519e-41 *)

      (* あれ、エラーが同じ値だぞ… *)

      CForm[i - j]
      (* 出力例: 0.e-98 *)

      (*おわり*)

      ちなみに、さらに高精度計算したり計算回数を増やしても同じです。

      数値計算からわかるように、筑波大の記録更新で本計算および検証に
      使われたアルゴリズムは本質的に同じ数列を計算している事になります。

      ボールウェインの4次収束アルゴリズムでの一回の繰り返し計算はガウス・ルジャ
      ンドルアルゴリズムの二回の繰り返しの計算に相当します。

      また別の見方をしますと、これらのアルゴリズムを使った計算では、
      円周率への収束判定をミスして、まだ収束しきってないのに計算を打ち切っても、
      双方同じ計算結果になります。

      # 個人的には東大や筑波大の計算の検証方法の方が信頼性が低いと思っています。
      親コメント
typodupeerror

コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell

読み込み中...