水木大学的谭教授,在一个午后抵达启航工业。
他戴着一副老花镜,穿着一件蓝布衬衫,手里提着一个黑色的牛皮公文包。
他看上去和任何一个来滨江出差的老派知识分子没什么两样。
韩栋亲自在研发大楼门口迎接。
“谭教授,一路辛苦了。”
韩栋上前,很自然地接过了谭教授手里的公文包。
“不辛苦,坐火车过来的,睡一觉就到了。”
谭教授摆摆手,他打量着眼前这栋崭新的大楼,又看了看韩栋。
“你这儿动静搞得可不小。电话里说得神神秘秘,说是有新东西让我这个老头子开开眼,到底是什么?”
刘涛从大楼里快步走出来,他眼圈发黑,头发乱糟糟的,但整个人精神亢奋。
“谭教授!”他看到谭教授,激动地喊了一声。
“小刘,你这状态,可比之前见你的时候强多了。”
谭教授扶了扶眼镜,笑了笑。
“谭教授,您跟我来就知道了。”
刘涛没多解释,侧身让开了一条路。
一行人没有去会议室,而是直接下到了负一层。
厚重的隔音门打开,一股混合着冷气和机器运转味道的空气扑面而来。
谭教授的脚步停住了。
机房里,十台深蓝紫色的高大机箱一字排开,侧面的散热格栅里透出指示灯的微光,风扇发出低沉的嗡鸣声。
整个空间里,除了机器的运转声,就是此起彼伏的键盘敲击声。
陆先进和他的团队正围着其中两台机器,屏幕上显示着一个复杂的三维模型,上面覆盖着彩色的云图。
“这是……”
谭教授是识货的。
他虽然没亲手用过这台机器,但在国外的学术期刊上,见过这个独特的LOGO。
SGI。
“硅谷图形公司的工作站。”
谭教授喃喃自语,他走上前,像是被一股无形的力量牵引着。
他知道这东西有多金贵。
在国内,可能只有极少数的国家级重点实验室,才有可能申请到一台。
而这里,有十台。
“谭教授,机器只是一部分,您看这个。”
韩栋没有介绍机器的型号和参数,而是直接把他引到了陆先进的身后。
屏幕上,一个代表着高温合金铸件的三维模型正在缓缓旋转。
模型的不同区域被渲染成从蓝到红的各种颜色。
“这是我们正在跑的一个定向凝固过程的多物理场耦合模拟。”
陆先进回过头,看到谭教授,连忙站起来解释。
“我们正在分析冷却过程中,铸件内部的温度场、应力场和元素偏析的动态演化。”
谭教授的注意力完全被屏幕吸引了。
他扶了扶眼镜,凑得更近了一些。
“网格单元有多少?”他问了一个非常专业的问题。
“非均匀网格,总计二十三万个单元。”陆先进回答。
“耦合了热传导、流体动力学和相变动力学三个模型,求解的是一组非线性偏微分方程组。”
谭教授心里咯了咯噔一下。
二十三万个单元,还耦合三个模型。
这种计算量,他太清楚了。
他所在的计算机系,有一台花大价钱从国外进口的小型机,跑一个十万单元级别的结构静力学分析,都得按天来算。
“这一轮迭代,跑了多久?”谭教授问。
陆先进看了一眼屏幕下方的计时器,回答道:
“三十二分钟。”
谭教授没说话了。
他伸出手,轻轻碰了一下SGI工作站的金属外壳。
三十二分钟。
这个数字在他脑海里反复回响。
他知道这意味着什么。
这意味着,过去需要一个团队花费数月甚至一年时间才能完成的研发迭代,在这里,一天之内就能跑完。
这不是单纯的计算速度变快了。
这是研发方法论的彻底颠覆。
“韩总,你们……你们是怎么弄到这些机器的?”
谭教授转过头,他看着韩栋,语气里充满了不解。
“过程不重要。”韩栋笑了笑。
“谭教授,我们去旁边坐下聊聊?”
……
计算中心旁边的一间小办公室里,刘涛给谭教授泡了一杯热茶。
谭教授端着茶杯,但一口没喝。
他还在回味刚才看到的景象。
“谭教授,您觉得这台机器,和我们国内主流的那些小型机,最大的区别在哪?”韩栋主动开口。
“处理速度,图形能力,还有内存带宽。”
谭教授几乎是下意识地回答,这些都是最直观的感受。
“它的浮点运算能力,恐怕是国产小型机的几十倍,甚至上百倍。”
“您说的这些,是结果。”韩栋的语气很平静。
“造成这个结果的,是根上的东西不一样,它的处理器架构。”
“MIPS?”谭教授立刻反应过来。
来之前,他就听刘涛在电话里提过,启航在搞一个MIPS架构的模拟器。
“对,MIPS。精简指令集计算机,RISC。”
韩栋说出了这个词。
谭教授的表情严肃起来。
作为国内计算机体系结构领域的权威,他当然知道RISC。
这是八十年代初,由斯坦福和伯克利两个学术重镇提出的新思想,与当时以Intel和DEC为代表的复杂指令集CISC分庭抗礼。
但在国内,这还仅仅停留在几篇翻译过来的学术论文上,是一种遥远的、存在于理论中的东西。
“我们一直沿用的CISC架构,思路是让一条指令尽可能多地完成工作。
比如,一条指令就完成一次内存读取、一次加法运算、再一次内存写回。”
韩栋没有用任何图表,只是用语言描述。
“但这样做,指令的长度不一,执行周期也千差万别。这给处理器的设计带来了巨大的复杂性。”
谭教授点点头,这是CISC最核心的特征,也是最大的难点。
“RISC的想法,恰恰相反。”韩栋继续说道。
“它把所有复杂的指令都打碎。一条指令,只做一个最基本的操作。
要么是内存读,要么是内存写,要么是寄存器之间的运算。
所有指令的长度都一样,执行周期也基本相同。”