第97章 推向全世界(2/11)
江临交上来的这个被称为mpS的核验包,代码风格并不花哨。
没有那些大厂程序员喜欢搞的炫技般的图形界面,没有错综复杂,动辄需要安装半天环境的外部依赖库,也没有那种看起来运用了各种高级设计模式,实际换一台电脑就因为底层c++编译器版本不同而跑不起来的工程垃圾。
整个文件夹的结构,带着一种极简主义的冷酷。
陈彦第一次在江大数学学院的内网服务器上解压这个包的时候,心里其实是松了一口气的。
作为经常帮导师跑各种祖传屎山代码的博士生,他见过太多惨不忍睹的脚本。
眼前这个包,目录清晰,命名规范,看起来挺干净。
然后,他敲下了 python3 generate_states.
py,开始跑。
第一轮,江大办公室那台配置顶配,装载了双路至强处理器和128G内存的Linux工作站,在轰鸣了四个小时,进度条走到57%的时候,突然在一声清脆的滴声后,无情地抛出了大段红色的报错。
陈彦的心提到了嗓子眼。
如果数学模型错了,那意味着过去几天的狂欢只是一场泡沫。
他凑近屏幕,盯着报错信息看了十几秒,忽然有一种想笑,却又想砸键盘的冲动。
不是证明错。
不是逻辑错。
不是内存溢出。
是文件读写错误。
而且原因荒诞到了极点。
工作站之前被另一个院系的老师借用过,系统环境变量的一个临时路径里包含了一个全角的中文用户名。
而江临的脚本在调用底层系统级的相对路径拼接时,没有考虑到非AScII字符的强制转码,导致写入临时日志时抛出了 UnicodeEncodeError。
一个极有可能彻底解决困扰了人类数学界六十年单砖问题的世纪核验包,这锋利无比的第一刀,竟然砍在了中文路径的编码上。
陈彦深吸了一口气,把这个问题截图,附上环境日志,发给了江临。
仅仅十分钟后,江临就发回了更新后的代码补丁。
他重写了路径处理的模块,加入了强制的UtF-8编码声明和异常捕获机制,干净利落。
第二轮,重新启动。
漫长的六个小时后,跑通了。
屏幕上跳出 Verification plete.
All local cases matched expected signatures.
的绿色字体。
陈彦长长地舒了一口气,刚准备站起来去倒杯水庆祝一下。
电脑右下角,邮件客户端弹出了提示音。
是远在南大的林照野教授发来的邮件。
南大数学院为了配合这次复核,特意腾出了一台专门做代数拓扑计算的高性能集群节点。
但是,那台机器上的python版本是稍微陈旧一些的3.
8版本,而底层调用的Numpy科学计算库版本也不同。
在处理 tile J 的顶点坐标时,输出表格中的浮点数格式多出了一位极小的误差。
结果本身在拓扑意义上完全一致,并不影响结论。
本章未完,请翻下一页继续阅读.........