第149章 可能,这就是天赋? 国士无双:我用真理为华夏铸剑!
国防科技大学,计算科学大楼,一號涉密会议室。
气氛有些微妙。
长条会议桌的一端,坐著以计算机学院院长周振华为首的一眾教授、博导,他们都是国內计算机领域的顶尖专家。
而在他们中间,眾星捧月般坐著一个年轻人——刘毅。
二十六岁的博士生,国际大学生程序设计竞赛(acm-icpc)全球总决赛金牌得主,被誉为国防科大计算机学院近十年来最耀眼的“王牌”。
他身形挺拔,戴著一副无框眼镜,镜片后的眼神透著一种属於顶尖程式设计师的绝对自信与骄傲。
会议桌的另一端,主位上,只坐著一个人。
许燃。
他穿著军装常服,神色平静地翻阅著手中的项目资料,仿佛对周围这些略带审视和好奇的目光毫无察觉。
校长吴德光亲自將人送来,简单说了几句场面话。
就把这个被命名为“『女媧』飞机结冰预测系统”的国家级攻关项目组,连同整个团队的指挥权,正式交到了许燃手上。
一位应用数学专业的本科生,领导一群计算机科学的博士和教授。
这画面,无论怎么看,都有点挑战常识。
周振华院长清了清嗓子,率先打破了沉默,脸上掛著温和的笑容:
“许燃同学,首先,我代表计算机学院,对你的理论表示由衷的敬佩。
那篇论文,我们组织全院的教授学习了好几遍,堪称是跨学科的典范之作。”
他话锋一转。
“不过,理论转化成工程软体,是另一套逻辑。
这里面的门道,坑非常多。
我们今天把你请过来,主要是想让你看看我们这边出的初步软体架构方案。
你毕竟是理论的提出者,你来把关,我们放心。”
话说的滴水不漏,客气又周到。
但潜台词,在场的人都听得懂:理论我们服,但代码我们是专业的。
你这个“外行”看看就行,点个头,签个字,剩下的就交给我们这些“內行”来干。
许燃抬起头,扶了扶眼镜,平静地点了点头。
“好,开始吧。”
简单的三个字,没有多余的客套。
周振华对身边的刘毅使了个眼色。
刘毅站起身,將自己的笔记本电脑连接到投影仪上。
很快,一幅结构复杂、逻辑清晰的软体架构图,出现在幕布上。
“许组长,各位老师,这是我根据您的论文思想,熬了三个通宵设计的软体架构。”
刘毅的声音清亮而自信,他手握雷射笔,红色的光点在幕布上精確地移动。
“本系统採用目前业界最成熟的微服务架构,分为数据採集、模型计算、结果渲染、系统监控四大核心模块。
模块间通过restful api进行通信,保证高內聚、低耦合,便於未来独立升级和维护。”
“考虑到计算的复杂性,核心计算模块我会採用c++编写,並使用docker进行容器化部署,方便在超算集群上进行横向扩展。
资料库嘛,前期使用关係型资料库mysql存储参数,后期可以引入时序资料库……”
刘毅侃侃而谈。
他的讲解清晰流畅,引用的每一个技术名词都是当前计算机领域最前沿最稳妥的选择。
教科书一般的方案。
完美。
在场的几位计算机教授频频点头,脸上露出讚许的神色。
周振华院长更是面带微笑,自己这个最得意的弟子,果然没让他失望。
这套方案拿出去,直接就能给一个顶级的软体公司当范本了。
他看向许燃,等待著对方的讚赏和肯定。
然而,许燃只是静静地听著,脸上没有任何表情,既不点头,也不摇头。
会议室里的气氛,隨著刘毅讲解的结束,再次陷入一种古怪的安静。
所有人的目光,都聚焦在了许燃身上。
刘毅推了推眼镜,心里有些打鼓。
这套方案他自信是毫无破绽的。
这位新来的组长,难道还能挑出什么毛病不成?
许燃终於动了。
他站起身,走到会议室前方巨大的白板前,拿起一支黑色记號笔。
这个动作让所有人都愣了一下。
“刘师兄。”
许燃开口了,声音不大,却清晰地传到每个人耳朵里。
“你的架构很规范,很標准。”
他先是给了一句肯定。
刘毅刚想鬆口气,许燃的下一句话,却让他全身的肌肉瞬间绷紧。
“但这是给『桃宝』、『狗东』这种商业软体设计的架构。
我们的目標是科学计算,是国之重器,追求的不是高可用、易维护,而是极致,是压榨出硬体最后一丝性能的极致效率。”
话音落下,整个会议室鸦雀无声。
周振华脸上的笑容僵住了。
刘毅的脸色微微一变。
许燃没有看他们,他转身面对白板,手中记號笔的笔盖被“啪”一声拔开。
他没有直接说刘毅的方案哪里不好,而是提出了第一个问题。
“第一个问题,数据结构。
你的方案里完全没有提。
我要知道,飞机表面被离散成上亿个网格点,这些数据在內存中如何组织?
你考虑过cpu的缓存行对齐来避免偽共享问题了吗?”
“嗡!”
刘毅的脑袋里像是被狠狠敲了一下。
缓存行对齐?
偽共享?
瞬间刺破了他方案华丽架构的外壳!
这是只有最顶尖的高性能计算专家,在进行底层优化时才会去死磕的细节!
对於习惯了应用层开发的程式设计师来说,这几乎是知识盲区!
他引以为傲的微服务、docker,在这些底层硬体效率问题面前,听起来像个笑话。
冷汗瞬间从他的额角渗了出来。
不等他回答,许燃的第二个问题接踵而至。
“第二个问题,多线程模型。
你说用c++,无非就是用標准库里的std::mutex或者std::lock_guard来给共享数据加锁。
本章未完,点击下一页继续阅读。(1 / 2)