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

Google、31.4兆桁の円周率で世界記録を更新 93

ストーリー by headless
更新 部門より
あるAnonymous Coward 曰く、

Googleは円周率の日の3月14日、Google Cloudを用いて最も正確な円周率の世界記録となる小数点以下31.4兆桁の計算に成功したと発表した(The Keywordの記事Google Cloud Blogの記事Numberworldの記事)。

計算に使用したのは円周率の世界記録更新で定番となっているy-cruncher。開発者のAlexander J. Yee氏によれば、近年の記録更新はメモリーやストレージの速度がボトルネックになっているとのことである。

プロジェクトの中心となったGoogleのEmma Haruka Iwao氏は、大学時代の恩師で過去の世界記録保持者でもある筑波大学計算科学研究センターの高橋大介教授にプロジェクト開始を伝え、いくつかのアドバイスをもらったそうだ。

なお、31.4兆桁のASCII形式のデータ容量は31.4TByteであり、データ圧縮(算術圧縮)しても10TByteである。

121日かけて計算された円周率の桁数は31,415,926,535,897桁。最も正確な円周率としてギネス世界記録にも認定されている。Yee氏によれば、円周率の世界記録としては計算に商用クラウドサービスを使用するのもSSDを使用するのも初めてだという。また、PC時代の円周率世界記録としては初めてネットワークストレージを使用しているほか、このような計算がAVX-512命令セットを使用して実行されたのも初めてとのことだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 情報量 (スコア:3, すばらしい洞察)

    by Anonymous Coward on 2019年03月17日 15時44分 (#3582568)

    log2(10)/8*31.4TB=13TB
    あれ?

  • 31,415,926,535,897桁とかやられちゃうと、次のレコードブレーカーのハードルが激上がりじゃないですか。

    ここらで、「100時間で何桁行けるか」とか「1兆桁の所要タイム」とかで競うとか……

    いや、もうアルゴリズム的には詰め切ってるみたいだし、あとはマシンパワー競争になっちゃうから、あんまり面白くないか。

    • >ここらで、「100時間で何桁行けるか」とか「1兆桁の所要タイム」とかで競う
      >あとはマシンパワー競争

      一桁多い 31,4159,265,358,979 コア/ノードで計算実行するルール?

      // 産医師異国に向かふ産後厄無く

      親コメント
    • マシンパワー競争でもあるんだからいいじゃない
      それにアルゴリズム的には詰め切ってるといっても

      近年の記録更新はメモリーやストレージの速度がボトルネックになっているとのことである。

      といった傾向が出てくれば、それを乗り越えるためにハードだけでなくアルゴリズムの方に改良や見直しの余地も出てくることもあるだろう。

      --
      うじゃうじゃ
      親コメント
    • by Anonymous Coward

      そんなわかってる桁内でくだらない足踏みしてても意味なくない?

      • by Anonymous Coward

        意味の有無で言えば更に正確な円周率を計算することに意味がないのでは?

    • by Anonymous Coward

      もともとそういうルールでしょ。3.14^n桁の円周率を計算する競争
      次は3140兆桁で記録更新

    • by Anonymous Coward

      オーバークロックで円周率ベンチを回すのってのがそういうのじゃないの?

    • by Anonymous Coward

      Gooleがマシンパワーとお金で殴りに来た時点でもう面白くないよ。確か前回の記録は個人だったのに

      • きっと最初に電子計算機で記録更新された頃もそう言うふうに言われてたんだろうなって思うと、
        今後も手法の革新とプレイヤーチェンジが繰り返されていくのだろうと想像できるけど。
        # Googleがちょっと本気出せば何でも塗り替えられそうな気配になってしまっているのは同感。

        親コメント
    • by Anonymous Coward

      32兆桁とか達成しても、「およそ3.2のゆとりガー」とか言われるのか。
      それはヤだな。

    • π100万桁計算ベンチマークなんてさんざやったでしょ?
      10年以上前から産廃になったベンチマークではある。

      • by Anonymous Coward

        Windows 95の頃にはSuper πが流行りましたね。

  • と言うのを使ってるとGoogle Cloudの声明にはありますね。
    https://en.wikipedia.org/wiki/Chudnovsky_algorithm [wikipedia.org]

    たしかにこの方法なら、一部てか最後のいくつかの演算を除いて整数だけで演算が出来ます(勿論、ビット数は法外にでかくなりますが)し、SIMDやマルチスレッドを使った並列演算も捗りそう。
    しかしなんでOpenCLとかCUDAとか使わなかったんだろうか…と思ったけど、結局はクラウドサーバの宣伝だったんですね(^_^;

    --
    --暮らしの中に修行あり。
    新しいblogはじめました。 [hateblo.jp]
    • Re:Chudnovsky法 (スコア:5, 参考になる)

      by Anonymous Coward on 2019年03月17日 18時30分 (#3582611)

      別に宣伝だからGPU使わなかったわけではなく、CPUの方が早いからGPU使わないだけです。

      今現在一番早い円周率の計算は、挙げておられるchudnovskyの公式を利用する物です。
      その公式を利用した円周率計算ソフトで有名なのが今回Googleも使用したy-cruncher。
      このアルゴリズムでは計算途中に一時データとして比較的大きな量の低レイテンシメモリを必要とするので、演算コアあたりの内部キャッシュ量が少ないGPUには向いてない。

      親コメント
      • Re:Chudnovsky法 (スコア:3, 興味深い)

        by Artane. (1042) on 2019年03月18日 1時46分 (#3582686) ホームページ 日記

        > このアルゴリズムでは計算途中に一時データとして比較的大きな量の低レイテンシメモリを必要とするので、演算コアあたりの内部キャッシュ量が少ないGPUには向いてない。

        確かにGPUだと、キャッシュも小さめですが、そもそもローカルメモリとして比較的速くアクセスできる領域が(1演算ユニット辺り)せいぜい64KB、グローバルなメモリでもせいぜい16GBとかですね。
        途中の演算(加減やせいぜい掛け算で済むブロックを想定しています)ですら、想定される桁数が10進換算で「メガ桁」とか「ギガ桁」、下手すると「テラ桁」になるかもしれないことを考えると、GPU側で並列演算をしようにも桁数が大きすぎて、メリットがないというのも納得がいきます。

        # となると、1モジュール辺り、数テラバイトとか数十テラバイトの直接アクセスできる(インターコネクト的な部分を超えない)メモリを抱えてるGPUのようなベクトル演算プロセッサがあれば…

        --
        --暮らしの中に修行あり。
        新しいblogはじめました。 [hateblo.jp]
        親コメント
    • Re:Chudnovsky法 (スコア:2, 興味深い)

      by Anonymous Coward on 2019年03月18日 10時06分 (#3582757)

      歴史的には大体こんな感じ

      黎明期
          マチンやシュテルマーのような級数展開の公式を、固定小数点で筆算のように計算
            n^2の計算量なので、桁数が倍になると4倍の時間が必要

      発展期
            FFTを使って多倍長計算を n log n の計算量で行う方法が発明される
            収束の速いボールドウィンとかベイリーの公式が好まれる
            1990年代のスパコンで計算競争してた時代

      21世紀
            バイナリースプリッティングによって、収束の遅い公式を高速に計算する方法が発明される
            最終結果を出す直前まで分数表現の整数演算で処理されるようになると共に、以前の結果を元に計算を追加する事も可能に
            チュドノフスキーの公式がよく使われるようになるが、原理的にはマチンとかでも可能

      親コメント
  • by Anonymous Coward on 2019年03月17日 23時07分 (#3582667)

    円周率計算年表 [wikipedia.org]を見ると1990年代から、y-cruncher で使われている Chudnovsky アルゴリズム [wikipedia.org] の Chudnovsky 兄弟 [wikipedia.org]は自作 (homemade) の並列コンピュータを使っています。同時期に金田康正先生たちはスパコンを使っていましたが、2009年のスパコンによる記録が同じ年に家庭用コンピュータで塗り替えられています。

    年表を見ると、多くの研究者が円周率計算に興味を持って世界記録に挑戦し、しのぎを削った結果、新記録が出たという感じがしません。挑戦する人がほとんどいない(のと、ここ10年は y-cruncher が実装された)ので、ハードウェアの進歩に伴って新記録が出ているような印象です。もちろん細かい部分での調整や努力はあったと思いますが。

  • by Anonymous Coward on 2019年03月17日 16時01分 (#3582575)

    25台のGoogle Cloud仮想マシンの96個の仮想CPUと1.4TBのRAMではパソコンとは呼べないだろう

    • by Anonymous Coward

      確かに「パーソナルコンピューター」という意味ならおかしいな。
      それおめーのじゃねーから!!みたいな。

      でもどっかでパソコンでやってる、って書いてるの?
      パソコンでの世界記録、って。
      ただの「コンピュータ」ならおかしくないし。

      • by Anonymous Coward

        PC時代の円周率世界記録としては初めてネットワークストレージを使用しているという記述になんの意味があるのかという疑問です
        どちらかと言うとスラドへの疑問です

        • Google Cloud Blogの記述を読むと、ストレージとして140TBのSSDを使用した。と書かれてますね。
          ネットワークストレージであるにしても、相当凄まじい構成と言うか、多分複数の物理ボリューム(というよりもネットワーク越しに分散してるストレージ?)をまとめて一つの論理ボリュームと言うか一つのパーティションにして、一時データも入れてたんでしょう。
          ネットワークストレージだとかなりI/O速度が遅くなると言うイメージがあるのと後は信頼性確保が結構難儀だった(あくまで過去形。今はそんな悪くないはず)と思うので、そういう辺りがクリアされたのだろう。と言う感じはありますけど。

          --
          --暮らしの中に修行あり。
          新しいblogはじめました。 [hateblo.jp]
          親コメント
    • by Anonymous Coward

      でもその集合体はまぎれもなく”Computer"だし、
      個人のアカウントで気軽に作れて使えるなら”Personal"だ
      特に違和感はない

  • by Anonymous Coward on 2019年03月17日 17時10分 (#3582593)

    マシンパワーが有り余ってるなら、円周率を乱数として見たときの性質の検定もやってほしい(性質の良い擬似乱数として扱えるのだろうか?)

    • by Anonymous Coward on 2019年03月17日 17時40分 (#3582603)

      >性質の良い擬似乱数として扱えるのだろうか?
      使えます。

      けど、未証明なので、もっと大きな桁までいったら偏っているかもしれない。
      数学と工学の立場の違いですな。

      なお、任意の桁位置の円周率の数値を求めることは、できるけどコストが小さくはないので、現実的な意味では疑似乱数の置き換えにはなりません。

      親コメント
      • by Anonymous Coward

        計算せずともRomに保持しておき使うときに読み出せば良い

        • by Anonymous Coward
          • by Anonymous Coward

            乱数テーブルにするってことですよ
            頭の方は覚えている人がいるので小数点以下1兆桁目辺りから使えばオッケー

            • 楕円曲線暗号 [wikipedia.org]に使われてる考え方と近いのか遠いのか、いまいち自信がないのですが、誰か解説お願いしますm(_ _)m

              # と言うか、暗号に使う「なにか」(疑似乱数源であったり暗号の式であったり)を円周率絡みのにしたら、
              # 気が付かれたら一瞬で破られちゃうのでは…

              --
              --暮らしの中に修行あり。
              新しいblogはじめました。 [hateblo.jp]
              親コメント
              • by Anonymous Coward on 2019年03月18日 11時36分 (#3582796)

                どこの事をおっしゃってるのか分からないのだけど、多分、暗号用途で使う意味はない。

                「謎の整数xとyがあって円周率のx桁目からy桁目」、なら理想的な乱数列になるかも知れないけど、xとyをどうやって決めるの? という問題が生じる。xとyを乱数で生み出すなら、最終的に円周率から作り出される乱数も、結局、xとyを生み出すのに使った乱数よりスゴいものにはなり得ない。暗号で胆になるのは、まずこの種になるxやらyやらが他人には絶対に予測不可能な性質。あとは、続く乱数から逆算してその種を求められない性質。

                他にも、暗号アルゴリズムには、秘密のパスワードの類以外に、「みんなが知ってる共通で固定の数表」を使うものもあるけど、1回作るだけの数表なので、円周率とか凝った物を使って作る意味はあまり無い。ただし、かつて「みんなが使う数表が、無作為に作られたものではなく、秘密の性質を知っている人にだけ暗号が簡単に解けるようなバックドアが仕込まれているんでは」という疑惑が出たこともあったらしいから、その疑惑を払拭するぐらいには使えるのかな。「円周率の『謎の桁』を数表として使う」だと「バックドアを仕込める桁を円周率から頑張って探したんだろ」という疑惑が残るけど、「円周率の最初のx桁」とすれば、さすがに怪しい仕込みは出来まいし。

                親コメント
      • by Anonymous Coward

        とある文献には他の一般的な擬似乱数を用いた処理の動作確認などには使えるだろうとあった(円周率と擬似乱数を使った結果が異なっていたらどこかに間違いがある)

        • by Anonymous Coward on 2019年03月17日 21時58分 (#3582653)

          そこは、ハードウェア生成した真の乱数を使うべきなんだけど、あいにく真の乱数は、コストがかかって再現性がない。再現性があったら、すでに「真の乱数」ではない。

          なので、論文等に「この乱数列と比較しました」って利用した乱数列を(検証のために)提示しなきゃいけない。
          ところが「それ、ほんとに乱数?」ってことになって、検査に使った「真の乱数」が偏ってないかどうか検定しなきゃ。
          ... きりがないです。

          なので、誰でも再現性があり、不必要なほどの桁数で計算されている円周率を「たぶん真の乱数に近いよね」という仮定で使うのです。

          親コメント
          • by Anonymous Coward

            その昔、スパークノイズを8bit化してプリンタを繋ぐパラレルポートに乗せるという、真乱数ジェネレータがI/O誌に掲載されたことがある。
            あれは本当に真乱数だったのだろうか? 原理的にはそうであってもおかしくはないけど。

  • by Anonymous Coward on 2019年03月17日 20時48分 (#3582640)

    量子コンピュータだったら、全桁もとめられるんじゃあ。

    (大嘘)

typodupeerror

あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall

読み込み中...