円の直径に対する円周の長さの割合を示す円周率・π(パイ)は、分子と分母がともに整数である分数で表せない無理数の一種で、小数表記だと数が無限に続きます。そんな円周率の桁を求める計算は、スーパーコンピューターのベンチマークに使われるなど、コンピューターの演算とは切っても切れない関係にあります。Google Cloudの開発者でコンピューター科学者である岩尾エマはるか氏が、ついに円周率を小数点以下第100兆位まで算出したと2022年6月9日に発表しました。

A bigger piece of the pi: Finding the 100-trillionth digit

https://blog.google/products/google-cloud/new-digit-pi-2022/

Google Cloud 上で 100 兆桁の円周率を計算 | Google Cloud Blog

https://cloud.google.com/blog/ja/products/compute/calculating-100-trillion-digits-of-pi-on-google-cloud

円周率の桁を求める計算は世界中で行われています。円周率の桁は2016年に約22兆4000億桁まで算出されましたが、2019年3月14日に岩尾氏のチームが31兆4159億2653万5897桁まで算出しました。この桁数は、円周率の「3.1415926535897……」にちなんでいます。

円周率の新記録を樹立したと「円周率の日」に発表、達成したのは日本出身のGoogleエンジニア - GIGAZINE

by Rob

その後、2020年1月29日にコンピューター科学者のティモシー・マリカン氏が50兆桁を算出し、さらに2021年8月16日にスイスのグラウビュンデン応用科学大学のCentre for Data Analytics, Visualisation and Simulation(DAViS)が108日と9時間をかけて62兆8000億桁まで計算したと発表しました。

円周率を62兆8000億桁まで計算して世界記録を更新したコンピューターのスペックとは? - GIGAZINE

Google Cloudの研究チームが円周率の桁算出の世界記録を更新したのは今回で2回目。算出された円周率の桁がコンピューターやアルゴリズムの向上とともに急激に増大していることは、縦軸を円周率の桁数(対数表示)・横軸を年で示した以下のグラフを見るとよくわかります。

岩尾氏によれば、今回の記録更新ではプログラムにy-cruncherのバージョン0.7.8を、アルゴリズムにチュドノフスキーの公式を採用したとのこと。チュドノフスキーの公式は以下で、円周率計算で特に効率が良い方法として知られています。

計算ノードはGoogle Cloudのn2-highmem-128。OSはDebian 11で、仮想CPU128コアと864GBのメモリを搭載し、100Gbpsの外向き帯域幅をサポートしているとのこと。また、使用可能なストレージ663TBのうち、515TBを計算に使用し、読み込みデータ量は合計43.5P(ペタ)Bで、書き込みデータ量は合計38.5PBに達したそうです。計算開始は標準時で2021年10月14日4時45分44秒、計算が終了したのは2022年3月21日4時16分52秒で、計算には157日23時間31分7.651秒かかっています。

単一の仮想マシンに接続できる永続ディスクの最大容量は257TBですが、ストレージは見積もりの段階で554TBを使うと判明したことから、岩尾氏は1台の計算ノードと合計64個のiSCSIターゲットを提供する32台のストレージノードから構成されるクラスタを設計したとのこと。クラスタのセットアップと管理にはTerraformを使用し、さらに古いスナップショットの削除やスナップショットからの再開などの作業を行うシェルスクリプトを開発し、2日ごとのバックアップ取得を自動化したとのこと。岩尾氏は一連のスクリプトをGitHubで公開しています。

pi-delivery/pi-100t at main · GoogleCloudPlatform/pi-delivery · GitHub

https://github.com/GoogleCloudPlatform/pi-delivery/tree/main/pi-100t

他にもストレージや帯域幅の改善を行った結果、円周率100兆桁がおよそ5カ月で算出できたとのこと。その後、別の公式アルゴリズムを使って検証したところ、すべての結果が一致したことから、計算が正しいことが確認されました。小数点以下100兆桁目までの100桁は「465871889512428835564671544483873493812120690481326567191745255431487214210205770773364343095295560」で、ちょうど100桁目の数字は「0」でした。全桁はデモサイトで公開されています。

岩尾氏は「今回の大規模計算は、Google Cloudの柔軟なインフラストラクチャを用いた大規模科学技術計算の一例で、こうした取り組みは世界中で行われています。また、計算プログラムを実行する5ヶ月の間、仮想マシンの不具合は無く、82PBのデータを1ビットの誤りもなく正しく読み書きすることができたため、今回の結果はGoogle Cloudの信頼性の高さも示しています。過去3年間、Google Cloudが積み重ねてきたインフラストラクチャや製品の改良が、今回のプロジェクトを可能にしました」とコメントしています。

岩尾氏は計算の詳細やこれまでの円周率計算の歴史についてを、以下のオンラインセッションでも語っています。

Home - Pi time: calculating 100 trillion digits of pi (π)

https://cloudonair.withgoogle.com/events/pi-time

なお、この円周率プロジェクトは実質的に岩尾氏の「趣味プロジェクト」だったそうです。