Googleが円周率の桁数計算の世界記録を破った

Googleが円周率の桁数計算の世界記録を破った

画像にはシンボルとテキストが含まれている場合があります

ゲッティイメージズ

円周率がさらに大きくなりました。Google Compute Engine が円周率の桁数を計算し、世界新記録を樹立しました。

Googleでハイパフォーマンスコンピューティングとプログラミング言語コミュニティに携わるエマ・ハルカ・イワオ氏は、Google Cloudのインフラストラクチャを用いて、円周率31兆4000億桁の円周率を計算しました。これまでの世界記録は、2016年にピーター・トゥルーブ氏が22兆4000億桁まで計算したものでした。公開されているクラウドソフトウェアを用いて、これほど大規模な円周率計算が行われたのはこの初めてのケースです。

岩尾さんは、学校の数学の授業で円周率を学んだことをきっかけに、円周率に魅了されました。大学時代、彼女の教授の一人である高橋大輔さんは、スーパーコンピュータを用いて円周率の最も多くの桁を計算した記録保持者でした。現在、円周率愛好家の間では、y-cruncherが選ばれるソフトウェアとなっています。2009年に開発されたy-cruncherは、円周率などの数学定数を数兆桁まで計算できるように設計されています。

「世界記録を破るにはかなり大きなコンピュータが必要です」と岩尾氏は言います。「しかし、ホームセンターで買ったコンピュータでできるわけではありません。だから、これまではカスタムマシンを自作する人がいました。」2018年9月、岩尾氏は円周率のさらに多くの桁を計算するプロセスを技術的にどう機能させるか検討し始めました。すぐに浮かび上がったのは、計算を実行し、それを保存するために必要なデータ量でした。170テラバイトものデータは、ハードウェアで簡単にホストできるものではありませんでした。岩尾氏は、全く新しいマシンを構築する代わりに、Google Cloud を利用しました。

岩尾氏はこれらの計算を実行するために25台の仮想マシンを使用しました。「仮想マシンのボタンを25回クリックする代わりに、自動化しました」と彼女は説明します。「数分で完了しますが、これだけの台数のコンピューターが必要な場合は、次のコンピューターをセットアップするだけで数日かかる可能性があります。」岩尾氏は、これら25台の仮想マシン上でy-cruncherを121日間連続して実行しました。

何も問題が起こらないようにするために、仮想マシンは常時稼働させる必要がありました。手計算やホワイトボードでの計算のように、すべてのステップが明確に可視化される必要がありましたが、これはクラウドによってプログラムの継続的な稼働が維持されて初めて可能になります。「手計算では、仮眠を取ってから最初からやり直すことはできません。そのため、計算に必要なすべてのデータを保存しておく必要があります」と岩尾氏は言います。「つまり、ペンと紙を使うと、たくさんの紙が必要になります。つまり、大量のストレージが必要になります。」彼女はまた、仮想マシンの1台が突然クラッシュするなど、何か問題が発生した場合に警告を発する監視システムも構築しました。たった1回のクラッシュ、たとえ数分間でも、プロセス全体が危険にさらされる可能性がありました。

「Y-cruncherとGoogle Cloudはどちらもコピーを作成する方法を持っています。つまり、特定の時点でコピーをとるようなものです。計算を止めずにディスクのコピーを瞬時に取れるように設定しました」と岩尾氏は語る。そのデータはコピーされ、スナップショットとして外部の別のディスクに保存される。

「最初に微調整したパラメータがいくつかありました。たとえば、一度に読み書きできるデータの量や、データが大きくなったときに境界がどのように変化するかなどです」と岩尾氏は言う。

計算が複雑になるにつれて、仮想マシンへの負荷が増大し、計算時間も長くなりました。Y-cruncherの計算は線形速度で進むわけではありません。桁数が2倍になると、時間とストレージ容量も2倍以上必要になります。そのため、岩尾氏が最初の計算を行った際には、必要な仮想マシンの数を把握するのが困難でした。

しかし、本当のプレッシャーは終盤に差し掛かってからやってきました。y-cruncherには、円周率そのものを計算するためのアルゴリズムと、検証のためのアルゴリズムという2つの基本アルゴリズムが組み込まれています。検証アルゴリズムは計算と並行して実行されますが、円周率の1桁しか計算しないため、多くの時間とリソースを消費します。そのため、検証プログラムを使ってすべての桁を計算することはできません。そうすると、さらに多くの時間とストレージが必要になるからです。検証プログラムでできることは、結果が正しいことを証明することです。「最後の乗算は重要です。計算プロセス中に1桁でも間違えると、結果全体が間違ってしまうからです」と岩尾氏は言います。

ニッチな趣味のように思えるかもしれませんが、πは開発者やプログラマーが新しいハードウェアの性能をテストするためによく使われています。その用途はクラウドコンピューティングだけにとどまらず、医療などの分野にも広がっています。「天気予報のように、複雑な計算リソースを大量に必要とするアプリケーションは数多くあります。実際、これはクラウドがそうした計算を処理できることを証明しています」と岩尾氏は言います。

Google Cloud の外部ディスクに保存されていた岩尾氏の計算のスナップショットも、今では一般公開されています。つまり、熱心な研究者はそれらの計算をコピーして他の場所で利用できるということです。岩尾氏にとっては、少し安心できるということです。「インフラには自信がありましたが、全体的には緊張していました」と彼女は言います。「でも、どんなに自信があっても、数学のテストを受ける時のように、結果が出ると気分が良くなるんです。」

この記事はWIRED UKで最初に公開されました。