超越 ZetaGrid

- Riemann 猜想漫谈 • 附录一 -

- 卢昌海 -

If you could be the Devil and offer a mathematician to sell his soul for the proof of one theorem - what theorem would most mathematicians ask for? I think it would be the Riemann Hypothesis.

- H. Montgomery


我们在 第十五节 中曾经提到由德国 Böblingen IBM 实验室的 S. Wedeniwski 启动的 ZetaGrid 系统。 这是一个由互联网上数以万计的计算机组成的分布式计算系统, 在我写作那一节的时侯, 它是 Riemann ζ 函数非平凡零点数值计算的领衔者。 随着计算的推进, 到二零零四年末 (也就是我写完那一节后不久) 的时候, ZetaGrid 的计算渐渐逼近了一个激动人心的里程碑: 一万亿 (1012) 个零点。

但就在这一目标唾手可得, 四年多的漫长计算即将迎来一个辉煌庆典的时侯, 却传来了法国人 X. Gourdon 与 P. Demichel 验证了 Riemann ζ 函数前十万亿 (1013) 个零点位于 critical line 上的消息[注一]。 那是在二零零四年十月十二日, 那时侯 ZetaGrid 已经把计算推进到了超过九千亿个零点, 距离一万亿只有咫尺之遥。 Gourdon 与 Demichel 的结果在这个时侯公布, 显然让 ZetaGrid 感到了苦涩。 此情此景, 就象九十多年前英国探险家 R. F. Scott (1868-1912) 历尽千辛万苦挺进南极, 却发现挪威探险家 R. Amundsen (1872-1928) 已经捷足先登 (Scott 后来在返回途中因食物与燃料耗尽而遇难)。

ZetaGrid 在多少有些黯然的气氛中静静地跨越了一万亿个零点。 二零零五年一月十二日, S. Wedeniwski 给所有 ZetaGrid 成员发了一封电子邮件, 感谢他们对 ZetaGrid 的贡献, 他在信中提到了 Gourdon 与 Demichel 结果, 他写道:

去年底, 许多人看到了 Gourdon 与 Demichel 有关完成了比我们多十倍的验证 (十万亿个零点) 的声明。 但是世界纪录永远只是留给历史的。 我的这一研究计划主要目的是汇集有关零点分布的精确数据。 现在我已经汇集了 20 TB 的数据以及有关 Riemann 猜想的大量启示, 这些将很快被发表并且希望会很快被证明。

到现在为止, 许多人问及我对我们这一群体的下一步打算。 我很高兴看到我们这一强大的群体对复杂并且基础的数学研究所具有的巨大兴趣! 这一工作无疑已经完成了 (但仍将运行一段时间), 我也花了一些努力来理解 Gourdon 与 Demichel 的更快速的算法。 但对于我的研究兴趣来说, 这一算法的实现形式还不够精确。

十天后, S. Wedeniwski 发出了另一封电子邮件 (也是迄今为止他给 ZetaGrid 成员的最后一封公开信)。 这第二封邮件的措辞十分含糊, 逻辑也较为混乱, 颇出乎我的意料。 它把 ZetaGrid 的工作与一些用数值方法无法实现的纯理论进展混为一谈。 这封邮件似是要说明 Gourdon 与 Demichel 的结果并未使 ZetaGrid 失去意义, 又似是在叙述 ZetaGrid 未来的目标, 而结果却让人看得一团雾水, 就不在这里复述了。 自那以后, 虽然 ZetaGrid 仍在运行, 但昔日的激情已不复存在。

我在收到 S. Wedeniwski 的那两封电子邮件 (参加过 ZetaGrid 的所有人都会收到) 时曾打算立即写作本附录, 介绍这一进展 (或者说变故), 但后来决定延后几个月以便观察 ZetaGrid 的后续发展。 从这几个月的情况来看, 我的感觉是: 除非 Gourdon 与 Demichel 的算法被发现有错误, 或者 ZetaGrid 更新自己的算法 (ZetaGrid 所具有的计算资源远远超过 Gourdon 与 Demichel, 如果换用足够快速的算法, 重新反超是完全可能的), 否则它对未来零点计算的价值将会边缘化。 但它作为大型分布式计算的一个范例仍将存在下去 (直至系统关闭为止), 并被载入史册。

那么强大的分布式运算系统 ZetaGrid 为什么会如此 “轻易” 地被超越, 并且被超越得如此悬殊呢? 关键在于算法。 Gourdon 与 Demichel 所使用的算法是由 Odlyzko 与 Schönhage 于 1988 年所提出的。 Odlyzko 曾用这一算法计算了 1020、 1022、 及 1023 附近数以百亿记的零点 (参阅 第十六节)。 用 Odlyzko-Schönhage 算法对前 N 个零点进行验证所需的计算量为 O(N1+ε), 远少于传统的 Euler-Maclaurin 公式及 Riemann-Siegel 公式所需要的 O(N2+ε) 与 O(N3/2+ε)[注二]。 这是 Gourdon 与 Demichel 能够在短时间内大幅超越硬件资源远胜于自己的 ZetaGrid 的根本原因。

Gourdon 与 Demichel 于 2003 年四月开始在若干台计算机上运行 Gourdon 依据 Odlyzko-Schönhage 算法编写的零点验证程序, 他们的计算共耗用了相当于一个 Pentium 4 2.4 GHz 处理器一年半的运算时间[注三], 完成了对前十万亿个零点的验证。 同样的计算如果使用 ZetaGrid 的算法, 将需要七百年的时间!

除了对前十万亿个零点的验证外, Gourdon 与 Demichel 还完成了对 1024 附近二十亿个零点的数值计算, 并公布了对那些数值的统计检验, 其结果非常漂亮地与 Montgomery-Odlyzko 定律 (参阅 第十九节) 相符。 这一计算与 Odlyzko 未发表的对 1023 附近五百亿个零点的计算互有千秋。

以上是零点数值计算中的最新进展, 由于它与我们介绍过的 ZetaGrid 有关, 因此在这里补叙一下。

返回目录


注释

[注一] 在 Gourdon 与 Demichel 的工作中 Gourdon 是主导者, Demichel 给予了硬件方面的辅助。

[注二] 其中 Nε 代表对数函数的组合。

[注三] 这其实是相当微不足道的资源。 用如此微不足道的资源就可以缔造一个新的纪录, 也从一个侧面反映出目前人们对零点的数值计算已无太大兴趣这一事实。 若非如此, 这样的记录早该被刷新无数次了。

返回