我的学习群里全是真大佬 第95章

十几分钟过去了,眼看着快到了下一节课的上课时间。

高院士才对着周围的学生摆了摆手。

“好了,同学们,你们先去上下一节课吧,剩下的问题,你们可以问你们的任课教授。”

大家虽然挺失望的,但也不能不上下一节课呀,只能无奈散开。

高院士走出了阶梯教室。

李东见状也跟了上去。

走廊上,高院士察觉到后面有人跟着,回过头看了看李东。

“同学,”高院士笑着问道。

“你不上课吗?”

李东说道。

“我不是这个班的。”

高院士愣了一下,随即反应了过来。

“元培的?”

李东点了点头。

“哈。”高院士一下子就笑了出来。

他在元培学院那边其实也是有挂课的,但像这种大一刚开学,就不去上自己院系的通识课,直接跑来信科学院的学生,有是有,但确实比较少见。

“走吧。”高院士招了招手,带着李东穿过理科楼的连廊,来到了他在信科学院的独立办公室。

推门进去,高院士在办公桌前坐下,示意李东也坐,随口问道。

“怎么?课上有什么没听懂的地方吗?”

李东摇了摇头。

“都听懂了,您讲得深入浅出,把底层硬件和软件算法的关系剖析得特别透彻。”

高院士听完,忍不住笑了。

这学生挺有趣的啊。

大一新生能听懂多少底层并发?

这小马屁拍得不显山不露水的,情商蛮高的嘛。

而坐在对面的李东,完全不知道自己说了大实话,反而被人当成了高情商。

“那你跟着我来办公室,是想问什么?”

高院士饶有兴趣的看着他。

李东直接问道。

“高老师,我最近在研究关于计算黎曼Zeta函数非平凡零点的底层算法优化。”

“我想在这个多点求值(multiple evaluations)的基础上,进一步优化它的内存分配,尝试把计算规模推到万亿级甚至更高的极高阶区间。”

“但在利用FFT对Zeta函数进行大规模网格展开时,底层内存的调用逻辑我总是处理不好。”

“当网格规模放大到千万级、亿级时,算力冗余太大,经常引起严重的内存碎片化或者缓存未命中。”

李东将自己对《黎曼手稿》嵌套进编程语言的一些遇到的问题说了出来。

“所以怎么才可以在不改变整体数学时间复杂度的情况下,重构C++底层的内存排布方式呢?然后最大限度地迎合CPU的缓存预取机制?”

高院士在听到李东这番话后,放下保温杯。

他特别喜欢这种会自己深度思考的学生。

他仔细想了想刚才李东说的内存分配逻辑,虽然他不能仅仅通过几个问题就完全看透李东那套降维算法。

毕竟他也不是专攻数学的。

但他还是发现了这套框架在硬件调度上的一些弱点。

“你的思路和正常学生很不一样,切入点很偏,但非常有意思。”

高院士拿起一支笔,在纸上画了一个简单的内存分块图。

“既然用了FFT做多点求值,你不能用常规的连续内存分配去想。”

“位反转置换会彻底打断CPU缓存的空间局部性。”

“你得手动做分块处理,把庞大的网格矩阵切分成能完全塞进 L2缓存的小块,在小块内部完成运算后再写回主存。”

高院士耐心的给李东讲解着内存对齐的精髓,句句都是干货。

李东听着高院士的话,【代码直觉】瞬间将这些概念具象化。

“我明白了!谢谢高老师!”

李东是真心的感谢,这就是有名师的好处,他们可能不像李东一样有外挂,但是也没见牛顿他们有外挂呀,可是依然不影响他们的牛逼。

问完核心的学术问题后,李东突然想起了一个很现实的问题。

他的联想电脑到现在都还开不了机,也还没去买新的。

所以他有些不好意思的问道。

“那个……高老师,咱们学校能申请用机房吗?”

高院士正喝着茶,听到这个问题,差点没呛到。

“我们学校的机房都是公用资源,”

高院士有些哭笑不得的解释道。

“你直接拿着你的校园卡去刷卡就能进去用。”

“当然,如果你需要跑超大规模的算力,可以在校园网上用学号申请超算中心的节点。”

李东这才恍然大悟。

高院士看着眼前这个有些迷糊的少年,越发觉得有意思了。

“同学,你叫什么名字?”高院士微笑着问道。

“我叫李东。”

“李东……”高院士点了点头,把这个名字记在了心里。

第100章 破百亿大关

燕大,35栋男寝,404室。

晚上九点四十。

“今天数院许晨教授的那场讲座,真给我听傻了。”

王浩作为拿过CMO金牌的主,他今天居然没有完全听懂。

“不愧是拿过拉马努金奖的长江学者,把双有理几何里的K-稳定性问题讲得明明白白的,还有关于法诺簇极化的那段推导,他到底是怎么想出来的。”

“确实牛逼,感觉自己高中搞的那些数竞就像是在玩泥巴。”

刘强深以为然的点了点头,随即看了一眼时间。

“哎?这都快十点了,李东怎么还没回来?”

陈楠坐在下铺的板凳上调侃道:“你们说……这小子不会一进大学就跑去谈恋爱了吧?”

别以为能考进燕大元培学院的学霸们,就都是些只知道关上寝室门死磕书本的呆子。

毕竟都是十八九岁血气方刚的年轻人,刚脱离了高中的苦海,谁心里还没有点对甜甜的恋爱的向往呢?

刘强推了推眼镜。

“我承认,在颜值这块儿,他确实能稍微压我一头。”

“但这才开学第一天啊!连校园的地形都没摸熟呢,不会这么快就勾搭上学姐了吧?”

就在三人疯狂八卦的时候,“砰”的一声,寝室门被推开了。

李东黑着一张脸,走了进来。

“哟,东哥回来了?怎么这么晚?”王浩看着他的脸色问道。

“这是……搭讪被拒了?”

李东翻了个白眼:“约个屁的会,我从机房刚被赶出来。”

晚吗?李东觉得一点都不晚!甚至觉得时间过得太快了!

今天上午刚从高院士那得到了关于“内存分块”与“缓存命中对齐”的指点后,李东立马就想去优化算法。

但是他自己那台破联想到现在都开不了机,所以就直接杀到了信科学院的公共机房

虽说公共机房里的台式机配置,还达不到他在江城六中借用的那种带有GPU加速的小型服务器集群的级别,但至少比他那个办公用的轻薄本要强得多,勉强能凑合用。

在机房里,他将自己重新理解的算法结合黎曼的降维算法,重新用C++编写了验证非平凡零点的程序。

这一次,他手动将庞大的FFT网格切分成了能完美塞进CPU L2缓存的微小数据块,彻底解决了位反转置换带来的缓存未命中问题。

光是重构这套底层代码,就花了他足足好几个小时。

李东这次没有像在高铁上一样从高阶区域开始。

他为了验算自己的算法,这次他是从头开始加全量验证,要把Zeta函数在这条临界线上的每一个非平凡零点全部揪出来!

李东不知道的是,就算是现在世界上最先进的算法,再动用超算中心的服务器集群,跑到百亿级,也要好几个小时。

他深吸一口气,按下了“Run”键。

程序跑得异常丝滑,没有内存泄漏。

一千万级……五千万级……

一亿级……十亿级……百亿级……

短短的三个小时,这套融合了顶级架构与降维数学思维的神级程序,硬生生在机房的普通电脑上,将每一个非平凡零点精准算出,计数一路狂飙,直接突破了百亿级大关。

李东看着屏幕,正处在构思下一步多线程并发优化的绝对“心流”状态中。

结果……

机房管理员大爷,无情的拍了拍他的肩膀。

“同学,九点半了,机房关门拉闸了啊。”

李东这才回过神来。

不是吧……

这样在即将高潮的时候被打断是很容易那啥的……

而且已经两次了!!

所以,他只能被迫中断了进程,把代码拷进U盘里,回了寝室。

“必须得买台属于自己的高配电脑了!”李东在心里咬牙切齿的想道。

他现在卡里还有三十多万,想买啥不行?

至于高院士说的那种申请学校超算中心节点的事儿,流程太繁琐,而且估计也有严格的机时限制,搞不好还要排队,就被他暂时排除了。

此时,王浩听完李东的话,愣了一下。

“你去机房干嘛?今天下午物院那边是王教授讲的量子场论导论,你没去听呀?”

刘强和陈楠也满脸不解的看着他。

他们以为李东既然喜欢物理,那肯定是去物院那边了呀。

“哦,我去了信科那边,听了高稳院士的《底层算法与高性能计算架构》。”李东随口答道。

寝室里的三人瞬间石化了。

“啊?”王浩诧异道。