- 2024-11-19
- 制御・IT系, 技術ニュース, 海外ニュース
- CUDALucas, GIMPSソフトウェア, GPU, GpuOwlプログラム, Great Internet Mersenne Prime Search(GIMPS), Mlucas, Prime95, PRPLL, クラウド, クラウドスーパーコンピューター, フェルマーテスト, メルセンヌ素数, リュカ-レーマーテスト, 合成数(非素数), 学術, 素数, 自然数(正の整数)
未知のメルセンヌ素数を探索する有志によるプロジェクト「Great Internet Mersenne Prime Search(GIMPS)」は2024年10月21日、元NVIDIA社員のLuke Durant氏が4102万4320桁に及ぶ史上最大の素数を発見したと発表した。既に発見されていたメルセンヌ素数は51個で、記事執筆時点でこの素数は52番目のメルセンヌ素数となった。
素数とは1とその数自身でしか割り切れない自然数(正の整数)だ。メルセンヌ素数は2のべき乗から1を引いた形(2P-1)で得られる特殊な素数で、紀元前350年頃にユークリッドが素数は無限に存在することを示して以来、整数論の中心に位置してきた。
17世紀に、フランスの修道士であるMarin Mersenne氏が、2P-1で表せる自然数(メルセンヌ数)でPがどの値になると素数になるかについて有名な予想を残したことから、2P-1の形で得られる素数はMersenne氏にちなんでメルセンヌ素数と名付けられた。
GIMPSは、新しいメルセンヌ素数を発見するため、1996年に設立されたプロジェクトで、世界で最も長寿の分散プロジェクトの1つだ。今回発見されたものを含めると、これまでに18個のメルセンヌ素数を発見している。Intel PCでのみ動作するソフトウェアから始まり、多種多様なCPUとGPUに対応するプログラムが作成されており、GIMPSはプログラム一式を無料で提供している。
新たに発見された素数は「M136279841」だ。つまり、2の1億3627万9841乗から1を引いたもので、4102万4320桁に達する。この素数は、過去に記録された最大素数より1600万桁以上大きい。
今回の発見で特筆すべき点は、メルセンヌ素数の探索にGPUの処理能力を活用した点だ。従来、メルセンヌ素数の探索は個人のコンピューター上で行われてきたが、GPU技術の進歩とクラウドの普及により、新たなアプローチが可能となった。
GIMPSソフトウェアにはメルセンヌ数の素数性をテストする「GpuOwl」プログラムが含まれている。このプログラムは、PC搭載のGPU性能がますます向上していたことから、2017年にMihai Preda氏が開発したものだ。2023年10月からGIMPSに尽力するようになったDurant氏は、多くのGPUサーバーにまたがってGIMPSソフトウェア一式を実行し維持するためのインフラを開発した。
GIMPSのプログラムは、確率的素数である可能性を判定する「フェルマーテスト」を行う。このテストに成功すれば、ほぼ確実に新しい素数であるといえる。その後、GIMPSサーバーに素数の可能性があるという通知が届くと、異なるハードウェア上の異なるプログラムを使用して、複数回、メルセンヌ数の素数判定に特化した「リュカ–レーマー・テスト」が実施される。
ほぼ1年にわたるテストの末、新たな素数が発見された時には、数千のサーバーGPUで構成されたDurant氏の「クラウドスーパーコンピューター」は、17カ国にわたる24のデータセンター地域にまたがっていた。2024年10月11日にアイルランドのダブリンにあるNVIDIA A100 GPUが、M136279841について素数の可能性があると報告し、翌12日には、米テキサス州San AntonioのNVIDIA H100がリュカ–レーマー・テストでM136279841の素数性を確認した。
さらなる検証も行われ、過去のメルセンヌ素数発見に使われたフリーウェア「Prime95」をAaron Blosser氏がIntel製CPU上で実行し、新しい素数であることを確認した。また、AMDおよびNVIDIAのGPU上で、Durant氏、Preda氏、James Heinrich氏、Serge Batalov氏、Ken Kriesel氏らがGpuOwlまたはGpuOwl派生プログラムである「PRPLL」を実行し、新しい素数であることを立証した。
Ernst Mayer氏が開発した「Mlucas」もIntel製CPU上でBatalov氏が実行し、2024年10月19日にM136279841が新しい素数であることを確認した。また、古いGPUプログラム「CUDALucas」もNVIDIA GPU上でDurant氏とBatalov氏によって実行され、新素数であることが裏付けられた。
この新素数の発見は、GIMPS Research Discovery Awardの対象となり、3000ドル(約46万円)がDorant氏に授与される。しかし、この成果は、素数を発見したDurant氏、ソフトウェア開発のPreda氏とWoltman氏、Primenetサーバーを保守するBlosser氏だけでなく、何百万もの合成数(非素数)をふるいにかけた何千人ものボランティアの功績でもあるとしている。