我与计算机的故事
李国杰院士:对20世纪90年代高性能计算机研制和应用的几段回忆
阅读量:0 2024-08-13

本文节选自《中国高性能计算30 年》(钱德沛等编.北京 : 科学出版社, 2024. 6)一书

理论分析、实验观察和计算模拟是科学研究的三大手段,科学与工程计算在科学研究、经济建设和社会发展中发挥着不可替代的作用。正因为如此,高性能计算成为世界各国激烈竞争的战略高地。过去30 余年,中国的高性能计算走过了一条艰辛的发展之路。在人才和经费匮乏的条件下,中国的科技工作者奋发图强,埋头苦干,一步一个脚印,从跟踪、并跑直到交替领先,取得了令世人瞩目的进步。


对20世纪90年代

高性能计算机研制和应用

的几段回忆


                 李国杰                 

 

863 计划启动时关于计算机发展方向的争论

 

863 计划启动以前,国内关于计算机技术的发展方向已经有许多讨论甚至争论。受日本倡导的第五代计算机的影响,当时多数意见认为要尽快启动智能计算机研制。但有一位学者头脑十分清醒,他正确预测了之后30 年计算机技术的发展,这位学者就是大名鼎鼎的钱学森

 

1984 年8 月3 日在国防科工委第五代计算机专家讨论会上,钱老做了一次高瞻远瞩的报告,1985 年1 月此报告发表在《自然杂志》第8 卷第1 期,标题是《关于“第五代计算机”的问题》。在这篇文章中,钱老明确指出,“第五代计算机是什么? 是第二代巨型计算机”。至于当时炒得很热的日本第五代计算机,钱老认为:“再把这个概念叫做第五代计算机,或者第六代计算机,就不那么合适了,因为它不是一个计算机了,而是一个智能机,所以我建议为了不要混淆起见,就干脆叫做第一代智能机。”钱老进一步强调:“如果说电子计算机的出现是一项技术革命,那么智能机的出现也将是一次技术革命。所以我们要第一,看到它的意义,一定要把第一代智能机搞出来,这是了不起的事情。但第二,又切不可鲁莽从事,犯欲速不达的错误。至于第一代智能机,根据前面讲的情况现在还不成熟,只能是预研。

 

钱老这篇文章的重点是讲第二代巨型计算机,这种计算机要真正能代替工程技术上耗费巨大的试验,其运算速度不是几十兆次浮点运算,而是几十亿次浮点运算,运算速度要提高几十倍至一百倍。特别有价值的是,钱老通过对求解非线性偏微分方程的仔细分析,指出研制巨型计算机首先要解决并行计算问题,包括机器软件和算题软件等。他严肃批评过去忙于制造机器,至于怎么用是不大重视的,在文章中大声疾呼:“这个问题必须提到议事日程上来,这样才能充分发挥巨型机的作用。”真是一语中的!钱老指出的问题至今仍然是我国高性能计算机研制和应用的短板。

 

可惜的是,钱老的意见没有完全被采纳,中央1986 年第24 号文件还是将研制智能计算机作为863 计划的主要目标之一,研制第二代巨型计算机的任务留给了国防部门,在政府科技计划中,民口基本上退出巨型计算机的研制。

 

以“智能计算机”的名义发展高性能计算机

 

863 计划306 主题叫智能计算机系统主题,显然国家的初衷是要研制智能计算机。但是,要不要追随日本,研制以并行推理机为标志的第五代计算机,306 专家组的专家们仍有疑虑。在汪成为组长的领导下,专家组成员一直在思索、讨论如何走一条适合世情、国情的发展计算机技术之路

 

在国家智能计算机研究开发中心(下文简称“智能中心”)成立以前,1989 年10 月我给国家科委领导写了一份报告,阐述了我对智能计算机和第四代计算机的看法,提出863 计划应重点发展并行处理技术。这份报告指出:“智能机的发展必须以VLSI 计算机(第四代计算机)的技术为基础。有些同志可能认为跳过四代机直接发展所谓五代计算机是一条捷径。但这只是一种空想。如果把人工智能看成是一朵花,它的根是计算机技术。而计算机技术有它自己的特殊发展规律。其中最重要的一点是几十年来已积累了数千亿美元以上的软件,这是人类文明的宝贵财富。软件的继承性成了计算机发展的巨大惯性,使得计算机体系结构(包括软件)的重大革新必须有几十倍以上的性能提高,用户才会愿意放弃原有的软件。这无疑增加了智能机研制的难度。这也说明充分利用四代机的已成熟的技术是发展智能机必须要考虑的一条重要原则。必须指出,尽管我国也研制了一两台上亿次浮点运算的计算机,但从总体来看,我国的计算机水平比国外落后十几年。这几年我国研制计算机的力量实际上是下降了,与国外的差距更加拉大了。只有实实在在缩短这个差距,研制智能机才有基础。863 计划智能机的研制对发展我国计算机技术,尤其是并行处理技术,应该起一定的促进作用。

 

为了更广泛地听取国内外专家的意见,以智能中心为主办单位,306 专家组于1990 年5 月在北京饭店召开了智能计算机发展战略国际研讨会,我们邀请了美国总统科学顾问许瓦尔兹教授、人工神经网络理论的奠基者之一霍普菲尔德教授、日本第五代机的负责人之一田中英彦教授、美国伊利诺伊大学的华云生教授、美国南加州大学的黄铠教授、波音公司的德格鲁特研究员等参加会议发表意见。我国吴文俊教授等100 多名学者到会。这次会议在当时是规格较高的国际学术会议,时任国务委员的宋健在人民大会堂接见了参加会议的国外著名学者。参加会议的多数外国专家不赞成我们走五代机的路,建议根据中国国情,先研制比个人计算机(PC)性能高一档的工作站(workstation)。智能中心将国外专家的意见整理成一份会议纪要,上报给国家科委领导。这次会议对智能中心选择以通用的并行计算机(从共享存储多处理机(SMP)做起)为主攻方向起到了重要的推动作用。

 

1991 年9 月17 日在北京召开了全国第一次人工智能与智能计算机学术会议。我在这次大会上作特邀报告,题目是“我们的近期目标——计算机智能化”。这次报告在国内第一次以“顶天立地——发展智能计算机的战略”的标题提出了“顶天立地”发展战略。当时讲的“顶天立地”战略还是狭义的,主要针对如何研制智能计算机。报告中指出:“开展智能计算机研究必须同时在两条战线上进行工作。一方面要努力突破传统计算机甚至图灵机的限制,探索关于智能机的新概念、新理论和新方法;另一方面要充分挖掘传统计算机的潜力,在目前计算机主流技术基础上实现计算机的智能化。”306 专家组把这种战略称为“顶天立地”战略。1993 年,306 专家组正式提出“顶天立地”的口号,将“顶天立地”战略解释为:“在理论和方法上有所创新、在关键技术上有所突破、在应用和产品开发上有所效益。

 

在306 专家组的共同努力下,863 计划的智能计算机研制任务实质上已落实于发展高性能计算机的行动之中。从共享存储多处理机(SMP)开始,接着研制大规模并行处理机(MPP),最后走上发展机群系统(Cluster)的康庄大道。为了不偏离863 计划原定的目标,306 主题也布置了许多与人工智能有关的课题,特别是智能人机接口(图像识别、语音识别等)、智能应用(如农业专家系统)方面的课题,为我国培养了一大批人工智能方面的专家和技术骨干。今天中国的人工智能技术可以与美国并驾齐驱,306 主题功不可没。智能中心虽然在发展高性能计算上做出了出色的成绩,但每次项目鉴定都要做充分的准备,争取能应对评委们尖锐的提问:“你们研制的计算机的智能在哪里?”

 

回想20 世纪90 年代的科研工作,306 主题的发展道路基本上与钱老的思路不谋而合,智能中心和后来成立的曙光公司为我国发展高性能计算机作出了实实在在的贡献。曙光高性能计算机实际上就是钱老期望的“第二代巨型计算机”,其计算速度提高了10 亿倍,远远超过钱老预测的几十倍。经过30 年的预研和技术积累,今天已经具备研制高性能智能计算机的条件,基于中国科学院计算技术研究所(以下称中国科学院计算所)研制的“寒武纪”芯片,艾级(Exa 级)智能计算机即将问世。但这种机器还不是真正的智能机,只是一些智能应用的加速器。

并行计算研究起步期的点滴回忆

 

20 世纪60~70 年代,我国研制过一些高性能计算机,大多是仿制国外的机器,原创性的贡献不多。算法研究上冯康发明的有限元法是突出代表,系统结构上高庆狮独立提出的纵横加工结构与Cray 计算机寄存器-寄存器加工方式异曲同工。改革开放以后,更多的学者开始投入到并行处理技术研究。

 

我国的并行处理技术研究起步有物理学家的功劳。由于理论物理研究需要超高性能的计算机,当时的巨型机满足不了计算需求,美国纽约州立大学、哥伦比亚大学的物理学家着手自己研制适合理论物理研究的专用超级计算机。李政道先生把这股风带到中国。他在北京建立了以理论物理为主要研究方向的中国高等科学技术中心,破格吸收我和祝明发加入。应他的邀请,1987 年我在中国科学院理论物理研究所专门讲授了一门并行计算课程,彭桓武、郝柏林等老科学家每堂课都坐在台下听课,我深深感受到老物理学家对并行计算技术的渴求。李政道先生和夏培肃、郝柏林教授合作,申请到国家自然科学基金重大项目,研制适合混沌计算的BJ-01、BJ-02 并行计算机。

 

国内最早在大规模并行计算机上调试并行算法的科研人员中也有物理学家。1995 年曙光1000 做出来后,没有人会用,有些学者将曙光1000 比喻成一匹长了32 条腿的马(它有32 个CPU),难以驾驭。当时,中国科学院物理研究所的王鼎盛、中国科学院生物物理研究所的陈润生、中国科学技术大学的陈国良、中国科学院软件研究所的孙家昶、中国科学院计算技术研究所的孙凝晖等科研人员成立了一个研究并行算法和并行软件的小组,构成一部“三套马车”。他们经常在计算所北楼200 房间讨论怎么驯服这匹32 条腿的“烈马”。应用、算法、软件和系统结构的核心骨干这么密切的合作,在国外也很难见到。这种合作产生了深远的影响,引领了国内并行算法和并行软件研究,为后来斩获超级计算机应用戈登·贝尔奖奠定了基础。若干年后,这个不到十人的跨学科小组出了三位院士

 

曙光一号和曙光1000 研制

 

研制曙光一号是智能中心历史上精彩的一幕。当时决定派一支小分队到美国去研发。在硅谷租间房子安顿下来后,需要什么软件和零部件,打个电话就有人送来,有些软件还让我们免费试用。这种“借树开花”“借腹生子”的做法大大缩短了机器研制周期。樊建平等几名派出的开发人员创造了一项中国计算机研制历史上的奇迹,不到一年时间就完成了曙光一号的研制,载誉归来,实现了他们在“人生能有几回搏”誓师大会上讲的“不做成机器回来,就无脸见江东父老”的诺言。与现在的十亿亿次浮点运算能力的超级计算机相比,曙光一号真是“小巫见大巫”,但曙光一号的研制成功开辟了一条在开放和市场竞争条件下发展高技术的新路。当时提出了“两做、两不做原则”:完全属于仿制、没有自己知识产权的产品不做;只为填补空白、市场上没有竞争力的产品不做。集中力量,做国外对我国封锁的技术和产品;努力赶超,做国外尚不成熟的技术和产品。现在看来,这些原则还应当坚持。

 

曙光一号研制成功以后,智能中心就开始研制曙光1000 大规模并行机。大规模并行机的关键技术是如何做成把大量处理机有效连接起来的高速互连网络和每个处理单元的核心操作系统。智能中心率先在国内突破了虫孔路由(Wormhole Routing)关键技术,为我国发展大规模并行机开拓了一条道路。这款芯片的研制者是刚进计算所的小伙子曾嵘,他在硕士期间做下围棋的计算机软件,没有碰过集成电路。1997 年我访问麻省理工学院(MIT)时告诉Dally 教授(Wormhole Routing 技术的发明者),我们已研制成功异步蛀洞路由芯片,他很惊讶,因为他做异步路由芯片曾失败过。这件事给我们的启发是,只要信任有潜力的年轻人,他们能做出意想不到的出色成果。后来计算所开展CPU 研制时,也是启用从未做过CPU 设计的科研人员。另一方面,刘文卓和孙凝晖牵头的系统软件团队把处理单元的核心操作系统做得小巧精致,占用内存很小,为用户提供了更多存储空间,使得曙光1000能求解的问题规模大大超过相同处理单元数目的国外并行机。曙光1000 是国内研制成功的第一个实际运算速度超过每秒10 亿次浮点运算的并行机(Linpack 速度超过每秒15 亿次),1997 年获得国家科学技术进步奖一等奖

 

曙光系列高性能计算机的早期市场开拓和应用推广

 

曙光 1000 研制成功以后,智能中心又面临了一次新的选择,即863 计划。下一个目标产品曙光 2000 究竟是做超级计算机还是超级服务器?超级计算机主要用于科学工程计算,追求最高的计算速度;超级服务器是更加通用的高端计算机,除科学计算外,更多地用于事务处理与网络服务。1995 年中国的互联网才刚刚起步,全世界速度最快的 500 台高性能计算机,绝大多数都采用大规模并行处理结构(MPP)。从计算速度上追赶国际先进水平容易得到学术界同行认可。但通过对市场和应用发展趋势的分析,我们预见到支持互联网的机群结构超级服务器将是高性能计算机的主流,提出了不要片面追求性能,而以争取尽可能多的用户使用国产高端计算机为目标,决定以计算机的可扩展性(Scalability)、好用性(Usability)、可管理性(Manageability)和高可用性(Availability)作为发展高性能计算机的主攻方向,总结为 SUMA 特性并注册了“It’s SUMA”商标。现在全世界 90% 以上的高端计算机已用于信息服务和数据处理,科学计算用户不到 10%,事实说明从研制超级计算机转向研制超级服务器是正确的选择

 

从1997 年起,我们着手研制符合这种新潮流的超级服务器,先后于1998 年底与2000 年初推出了曙光2000-Ⅰ和曙光2000-Ⅱ超级服务器,前者由32 个处理机构成,峰值速度达每秒200 亿次浮点运算;后者由82 个节点(164 个处理机)构成,峰值速度达每秒1100 亿次浮点运算,具有较强的市场竞争力。

 

以曙光1000A 和曙光2000 超级服务器为主要设备,国家高性能计算机工程技术研究中心(也依托于计算所)先后在北京、合肥、武汉、成都等城市建立了五个国家高性能计算中心,这些中心虽然后来没有得到国家的持续支持,但为推广普及并行计算、培养高性能计算机应用人才发挥了重要作用。

 

与计算机的研制相比,高性能计算机的推广应用和市场开拓的历程更加艰辛。20 世纪90 年代初研制曙光一号时,国内高性能计算机市场是外国大公司一统天下。那时候别说卖自己生产的高性能计算机,就是送给别人用也不一定接受。最早的曙光产品推广还是有政府部门的背书或支持,直到1997 年,曙光1000A 落户辽河油田,才真正实现完全靠商业化运作进入市场,合同签了国家科委才知道,实现了国产高性能计算机商品化零的突破。曙光机打入铁道部,也在偏远的三间房车站闲置了快一年(做IBM 计算机的B 角),因IBM 服务器坏了无人去维修才当上A角,因试用效果很满意争得入围竞标的资格,一举中标了全国十几个铁路编组站的调度计算机。

 

1993 年担任国家科委主任的宋健同志到智能中心参观时,就号召智能中心当“敢死队”,要像当年刘邓大军一样杀出重围。智能中心和曙光公司的员工没有辜负全国人民的期望,勇敢地杀出重围,在很多人认为难以成功的高性能计算机领域做出了令人欣慰的成绩。科技部高新司原司长冀复生同志在赴美工作前写的一份关于曙光机的背靠背调研报告中讲,“曙光公司犹如卢沟桥事变中的29 路军”。值得庆幸的是,曙光公司没有像29 路军一样悲壮地倒下去,而是通过顽强拼搏,由弱变强,曙光计算机在中国高性能计算机TOP100 中的份额已超过IBM 和HP 等巨头,2009 年以来9 次位居国内第一。

 

回顾曙光计算机市场开拓的艰苦历程是想说明,发展高性能计算机的目标不只是争取世界高性能计算机 TOP500 的第一名。Linpack 只是衡量高性能计算性能的一个指标,不同的应用对机器的性能和功能有不同的要求。正如钱老所说,我们应更加关心高性能计算机真正用起来。曙光2000 的市场开拓中有一件事令我印象十分深刻。当时市场上应用软件大多基于IBM 公司的AIX 操作系统,因为我们市场规模太小,要求应用软件厂商将应用软件移植到我们自主开发的SNIX 操作系统,没有人响应。智能中心自主开发了具有单一系统映像的机群操作系统,把所有的节点AIX 操作系统管起来,使得基于AIX 的各种应用软件不用移植就能在曙光计算机上跑起来,靠这一招曙光2000 就打开了市场。IBM 的技术人员感到不可思议,这种事情没有AIX 源代码怎么能做到。这种市场上有奇效的技术,可能没有很高的学术价值,大学教授们是不会做的。如何用标准的工业化部件构建世界领先的超级计算机,同时又能用这些部件大规模地组装大大小小的各类服务器,这也是曙光公司在市场上成功的法宝。我希望我国计算机界多关注这些市场化的“杀手锏”技术,像重视SCI 论文一样重视市场化技术的“含金量”