周培明愣了一下,下意识地点了点头:“对。我们一直以来的研究方向,都是设置一个或几个主节点,负责任务的分解和分发,其他从节点负责计算。我们认为问题出在主节点的处理能力或者分发算法上。”
白杨笑了笑,从笔筒里抽出一支铅笔,又拿过一张空白的草稿纸。
“方向错了。”
他一边说,一边在纸上迅速地勾勒起来。
他的笔速很快,线条却清晰而稳定。
“在万亿次这个级别,传统的中心化调度,本身就是那个最大的‘堵点’。无论主节点多强,它都会成为整个系统的性能瓶颈和单点故障源。”
“你们看,我们为什么不能换个思路?”白杨在纸上画了许多个小圈,代表计算节点,但并没有画一个中心的大圈。
“我们不要‘主从’,我们要‘去中心化’。我们可以设计一种‘任务洪泛协议’和‘计算资源拍卖机制’。”
“当一个大的计算任务进来,我们不通过主节点去分解,而是把它打碎成无数个标准化的‘微任务包’,然后像洪水一样,广播到整个集群网络里。”
周培明和跟在他身后一直没敢出声的两个年轻研究员,立刻凑了过来,死死地盯着白杨笔下的草图。
“每一个计算节点,根据自己当前的负载情况,去‘认领’或者说‘拍卖’这些任务包。”
“算力空闲的,就多认领一些;算力紧张的,就少认领或者不认领。”
“这样一来,任务的分配就从一个‘中央集权’的过程,变成了一个所有节点共同参与的‘自由市场’行为。”
“这样……这样怎么保证任务的协同和最终结果的汇总?”一个年轻研究员忍不住小声问道。
“问得好。”白杨赞许地看了他一眼,“所以,我们需要在‘微任务包’里嵌入‘依赖关系标签’和‘完成信标’。”
“一个任务包的计算,可能会依赖另一个任务包的结果。节点在完成计算后,会把结果连同‘完成信标’一起,再次广播到网络里。”
“其他正在等待这个结果的节点,接收到信标后,就可以开始自己的下一步计算。”
“这……这不就是把调度的压力,分散到每一个节点上去了吗?这……这太……太天才了!”周培明院士的呼吸陡然急促起来,他一把抢过白杨手中的铅笔和草图,像是捧着什么绝世珍宝。
他那双因为长期伏案而显得有些浑浊的眼睛里,此刻爆发出惊人的光亮。
堵点!
他们苦苦追寻却找不到的堵点,原来不是某一个具体的环节,而是他们整个设计的底层逻辑!
他们一直想着怎么去疏通那条八车道高速公路上的交通,而白杨却直接告诉他们,别修高速了,我们来建一个覆盖全城的、四通八达的城市路网!
这种“去中心化”、“分布式协同”的思想,在这个时代,简直是颠覆性的!
它完全跳出了现有计算机体系结构设计的框架,仿佛是从未来空降而来。
“茅塞顿开!茅塞顿开啊!”周培明激动得满脸通红,他拿着那张草图,手都在微微发抖,“白所长,你……你真是……真是解决了我们的大问题了!我……我代表计算机研究所,代表整个项目组,谢谢你!”
说着,他竟要站起来给白杨鞠躬。
“周老,使不得!”白杨赶紧扶住他,“这都是我们分内的工作。我只是提供了一个思路,具体的实现,还要靠您和所里的同志们去攻关。”
“不不不,这不是思路,这是指路明灯!”周培明用力地摇着头,眼神里充满了敬佩和感慨,“有了这个方向,剩下的就是技术细节问题了。我敢保证,我们一定能把它实现!”
他小心翼翼地将那张画着草图的A4纸,像圣旨一样卷好,紧紧攥在手里,仿佛生怕它飞了。
“白所长,这个程序问题一解决,我们后续的验证工作就没有大的障碍了。”周培明的情绪平复了一些,但语气中的兴奋依然难以掩饰:“我估计,最多三天!”
“三天后,我们就可以进行第一次全系统万亿次计算的先行验证!到时候,还请您务必莅临现场,给我们……指点工作!”
他用上了“指点工作”这个词,这已经不是平级之间的邀请,而是学生对老师的恳求。
白杨看着这位为国奉献了一辈子的老科学家,心中也涌起一股敬意。
“好。”白杨重重地点了点头,“三天后,我一定到。”
周培明得到了自己想要的答案,又和白杨确认了几个技术细节,这才心满意足地带着两个已经把白杨奉若神明的年轻研究员,脚步生风地离开了。
……
转眼,三天的时间过去。
初秋的京城,天高云淡。