[ 0174: Googleの円周率計算 ]


[ 大宙麗亜ちゃんの質問 ]

今年の「白い (white)」円周率の日 (3 月 14 日) に、 Google が円周率を約 31.4 兆桁 も計算し、 日本人女性がチームの中心だったというニュースがありましたが、 これは π フール (pi=pie fool: パイの投げ合い) みたいな国際的冗談だったのでしょうか?

それともホントにホントの話?


[ 丘品花志先生の回答 ]

レイアちゃん、いい質問です。 けっして「おかしな話」ではないです。 (笑) 私も興味を持って、公式発表されている範囲でいろいろ調べてみました。 「white day」は「一切を白紙に戻す日」ではありません。 白紙の上で計算せず、それなりのコンピューターを駆使して円満解決する日です。 菅生くんにも言って聞かせておこう。

わからない専門用語は湯会老人に聞いてください。

3 月 14 日 (国際的な円周率の日) は公式発表の日で、 実際の計算は 1 月 21 日 に終わっていたとのこと。

Start date 2018/09/22 06:49:32 UTC (協定世界時)
End date 2019/01/21 09:40:50 UTC
Total computation time 111.8 days (2,795 node-days)
Total start-to-end time 121.1 days
Compute instance 96 virtual CPUs with 1.4TB of RAM
(n1-megamemory-96 instance)
Disk instances 24 nodes of n1-standard-16
(16 vCPUs, 60 GB memory)
10 TB of SSD persistent disk
attached to each node.
240 TB in total, 170 TB used mamimum
Algorithm Chudnovsky's Formula
Total disk I/O 9.02 PB read, 7.95 PB written

25 台 の Google Cloud 仮想マシン (96 個の仮想 CPU+1,4TB の RAM) が使われました。 これらの構築に 約 10 日間 かけ、それから 111.8 日 で計算を完了しました。 Total disk I/O のところの PB というのはペタバイト、 すなわち 1000 兆バイトという単位です。たいへんなデータ量ですね。

25 x 111.8 days = 2795 node-days という計算工数ですね。

計算結果の桁数は: 31 兆 4159 億 2653 万 5897 桁。

10 進表記した円周率と上記の桁数の最初の 14桁 が一致しています。 わざとここで打ち切ったのでしょうか?

Emma Hakura Iwao さんという日本人女性 (筑波大卒) が活躍しました。 Wikipedia (英語版) へのリンクは: ここ

YouTube へのリンクは: ここ

計算には Chudnovsky の式 (1988) が使われたようです。

これは正の項と負の項が交互にあらわれ、現時点では収束が最も速い円周率の計算式です。

実行時のログ (shell) は:


[ 大宙麗亜ちゃんのコメント ]

丘品花志先生、ありがとうございます。今日は「おかしな話」じゃなくって、 ホントのホントの話ということがよくわかりました。 日本人女性の活躍はすごいですね。私もいちおう女の子だから、 自分のできる範囲でベストをつくします。


[ 湯会老人のコメント ]

丘品先生、よくもまあ細かく調べられましたね。ありがとうございます。

あえて補足させていただきますと、次の点でも画期的でした。

  • 計算ハードウエアに大規模記憶装置を直結せず Cloud (インターネット) を使用。
  • SSD (Solid State Drive) を使用。
  • AVX512 命令セットを使用。 512-bit ワイドな SIMD ユニットで 32-bit単精度浮動小数点演算なら 16-wide の実行が可能。

検証に使ったのは次のような改造PC:

* Intel Core i9 7900X @ 3.5 GHz
 (overclocked all-core AVX512)
* 128 GB memory @ 3600 MT/s (overclocked)
* GeForce GTX 1050 Ti
* 500 GB SSD + 2 TB 7200 RPM HD
* Windows 10 Build 16299

検証には Bellard's 7-term BBP (Bailey–Borwein–Plouffe) 公式と オリジナルの 4-term BBP 公式を併用したようです。

BBP 公式を使うと、円周率の計算結果の 16進表現の 任意の n 桁目を その上位桁 (preceding digits) に無関係にピンポイント的にチェックできます。 検証の定番と言えます。


[ 西尾三奈さんのコメント ]

丘品先生は最新の技術動向をちゃんとフォローされているんですね。 たいへん勉強になりました。

それから:

「white day」は「一切を白紙に戻す日」ではありません。 白紙の上で計算せず、それなりのコンピューターを駆使して円満解決する日です。 菅生くんにも言って聞かせておこう。

の部分には大笑いしました。言い得て妙なり。「尾も白い(おもしろい)」。
菅生 (すがお) くんがめでたく素顔を見せて元気に成長する頃には 世界はもっと円満になっていることを期待したいですね。

[ 0181: 次の記事 ]

[ 0180: 放物線に内接する四角形 ]

[ 0179: 萬福ラーメンができる前に ]

[ 0178: 1,2,3,4,12345 ]

[ 0177: 0069再考 ]

[ 0176: 関取記事リスト ]

[ 0175: 記事アクセス数の Long Tail ]

[ 0174: Googleの円周率計算 ]

[ 0173: 放物線滑走路からの落下 ]

[ 0172: 半円の弦の4分割 ]

[ 0171: 円弧の3分割 ]

[ 0170: Perlの順列機能 ]

[ 0169: 陰陽の重心 ]

[ 0168: 0166の補足 ]

[ 0167: GNUPLOT:ドラゴン曲線描画 ]

[ 0166: 正方形周上の4個の角度 ]

[ 0165: x^3-y^3=65 の整数解 ]

[ 0164: cos(PBQ)の値 ]

[ 0163: 3点を中心にした3個の円 ]

[ 0162: 正三角形の中の正三角形 ]

[ 0161: 人気記事 ]

[ 0160: 前の記事 ]

[ トップページへ ]