衡宇发自凹非寺
量子位公众号 QbitAI
新的人类已知最大素数,被 GPU 发现!
这个数就是2¹³⁶²⁷⁹⁸⁴¹ −1,如果展开会有 41024320 位十进制数字。
一位英伟达前员工通过开源项目 GIMPS(梅森素数大搜索,Great Internet Mersenne Prime Search)报告了这一结果。
且是通过英伟达 A100 初步发现,然后经由 H100 验证。
2¹³⁶²⁷⁹⁸⁴¹ −1 比之前创纪录的素数大 1600 多万位,是有史以来发现的第 52 个已知的梅森素数,也是 GIMPS 项目发现的第 18 个梅森素数。
连马斯克刷到新闻都跑来围观。
“GPU 的用途不仅是 AI”
2¹³⁶²⁷⁹⁸⁴¹−1 目前也被称为 M136279841,计算方法是136,279,841 个 2 乘起来,然后再减1。
要细数这个最新素数被发现的故事,就不得不多说两句发现他的卢克老哥。
卢克老哥现在的身份是一家创业公司的 CEO,也是目前 GIMPS 最多产的贡献者。
不过在之前,从 2010 年开始,老哥在英伟达工作了 11 年之久,期间参与过 GPU 的设计。
他之所以加入寻找梅森素数的行列,是想要通过这件事证明:
GPU 不仅仅可以用在 AI 领域,也非常适合用来搞基础数学和科学研究。
当然,用 GPU 找素数不是卢克老哥自己的创新性想法。
早在 2017 年,Mihai Preda 就留意到了 GPU 在 PC 中的功能性和重要程度与日俱增,然后他就编写了一套叫做 GpuOwl 的程序,来测试寻找梅森数中的素数。
2023 年 10 月,卢克老哥开始了他的寻找梅森素数之旅。
在他看来,云计算中 GPU 可用性的爆炸性增长为 GpuOwl 提供了独特的机会。因此,老哥开发了一套跨多个 GPU 服务器运行和维护的 GIMPS 基础设施。
截至目前,卢克老哥的“云超级计算机”由数千个服务器 GPU 组成,横跨 17 个国家(地区)的 24 个数据中心区域。
测试一年之后,也就是这个月,卢克终于有了新发现——
10 月 11 日,爱尔兰都柏林的英伟达 A100 报告称,M136279841 可能是素数。
次日,美国德州圣安东尼奥的英伟达 H100 通过 Lucas-Lehmer 测试证实了这一点。
按照规定,卢克老哥因为找到了新的素数,可以获得 3000 美元的研究发现奖金。不过消息称,老哥决定把这笔钱捐给阿拉巴马州数学与科学学院的数学系。
有文章感慨道:“这个最新的人类已知最大素数的出现,结束了普通个人电脑寻找素数在过去 28 年中的统治地位。”
世界上寿命最长的分布式项目之一
说到这里,我们来简单介绍几句,啥是素数,啥又是梅森素数。
素数,是指在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的自然数。
而梅森素数则是 2P-1 形式的素数。得名于法国数学家和修道士马林·梅森(Marin Mersenne)。
人们为了纪念梅森在 2P-1 型素数研究中所做的开创性工作,从此以后,就把这种类型的素数称为“梅森素数”。
由于符合 2P-1 形式的数,有高效的算法(如卢卡斯-莱默测试)可以用于素性检验,即使在P非常大的情况下也是如此。
后来人们发现的已知最大素数几乎都是梅森素数,因此寻找新的梅森素数的历程也就几乎等同于寻找新的最大素数的历程。
目前为止,一共发现了 52 个梅森素数,并且其中 18 个由 GIMPS 项目发现。
由于寻找梅森素数,不仅需要丰富的理论知识,还需要海量的计算,一个分布式项目诞生了。
它就是 GIMPS,梅森素数大搜索。
GIMPS 诞生于 1996 年,是世界上寿命最长的分布式项目之一,旨在发现新的世界纪录的最大/小的梅森素数。
由于它背后是一个科学研究慈善机构,因此 GIMPS 是一个志愿者团队协作的项目,任何拥有相当强大的 PC 或 GPU 的人都可以加入,成为“梅森素数猎人”。
人们可以通过下载开源的 prime95 和 MPrime 软件来搜索梅森素数,其中,Prime95 的作用是拿它查询以前的梅森素数。
GIMPS 用户运行的程序会执行 Fermat probable prime 检验:
测试一旦成功,就几乎可以确定一个新的梅森素数被找到了。
不过在 GIMPS 服务器收到“可能出现新梅森素数”的通知时,还是会马不停蹄地在不同硬件上使用不同程序,运行几个确定的 Lucas-Lehmer 素数测试,来确保万无一失。
GIMPS 基于一种特殊算法来寻找最新的梅森素数。
上个世纪 90 年代初期,已故的苹果公司杰出科学家 Richard Crandall 发现了将卷积(本质上是大乘法运算)速度提高一倍的方法。
该方法不仅适用于素数搜索,也适用于计算的其他方面。
GIMPS 的软件负责人 George Woltman 用汇编语言实现了 Richard 的算法,从而产生了一个效率空前的素数搜索程序,这才导致了 GIMPS 项目的成功。
不过一开始开始,它设计的软件仅仅能在英特尔 PC 上运行;后来,又能在各种非英特尔处理器上跑;十年前,GIMPS 系列中又增加了 GPU 专用软件。
到现在,GIMPS 已经为各种 CPU 和 GPU 提供完整的程序。
One More Thing
不过,围绕着梅森素数一直有些小小的争议。
因为梅森素数的实际用途其实不多,所以有人老是很疑惑,到底为啥要费劲吧啦地搜索寻找出这些最大梅森素数呢?
在梅森素数网站上,就这个问题被列出来的一个答案是:
为了荣耀!
话倒是说回来,其实几十年前,类似的疑惑就已经存在了,直到人们基于素数开发了重要的密码学算法,疑惑才被打消。
参考链接: