自由篮球米雪评测:“留学”计算所

来源:百度文库 编辑:九乡新闻网 时间:2024/04/27 19:59:36

“留学”计算所

作者:安虹 http://www.ccw.com.cn 2006-10-27 14:24:15 我要评论(0)    中国科技大学,英文简称USTC(University of Science and Technology of China)。她的出名,除了她“党办高校”的传奇生世,中科院的“独生子”,校友中诸多两院院士,少年班,……,还有一个原因,就是她有一个“USTC(U.S. Training Center)”的绰号,被人叫成了“出国预备学校”。与80年代许多考入科大的学子一样,先上科大,然后出国,也曾是我理想的求学道路。然而,当我进入科大学习和工作后,学校不是培训我去U.S.留学,而是两次去ICT“留学”。这两次“留学”,不仅把我个人的成长道路与计算所联在了一起,也把中国科大计算机系统结构未来的学科发展与计算所紧紧地联在了一起。

第一次在ICT“留学”,学会“骑32条腿的马”

        1995年9月,我作为刚刚成立的我国第一家高性能计算中心——中国合肥高性能计算中心(后改称"国家高性能计算中心(合肥))的筹备人员,受命带两名研究生来计算所国家智能计算机研究中心接受曙光1000的技术培训,为合肥中心即将引入的曙光1000并行机做技术支持的准备工作。

        我见到了两年前来智能中心做并行程序时教我用Transputer并行机的孙凝晖。当时,在他的帮助下我在智能中心的Transputer并行机上完成了硕士论文的部分实验工作。上次见面时还是硕士生,现在已经是智能中心骨干研究人员、负责我们培训工作的孙凝晖见到我时显得很高兴。曙光1000第一次“远嫁”安徽,有老朋友来护“嫁”,自然很高兴了。为了做好曙光1000第一家用户的技术支持工作,打开曙光1000在全国推广应用的局面,智能中心全力支持我们掌握尽可能多的技术细节,让我们同中心的课题组成员一样参加了各种讨论班,安排我们参加曙光1000的值班和维护工作,还让我们部分参与了曙光1000的用户编程环境的开发工作。到我们回校的时候,已经把曙光1000的里里外外摸了个遍,对曙光1000的了解像是我们自已也参加过设计一样了。在智能中心前后近一年时间的学习,不仅帮助我们做好了技术支持工作的准备,更重要的是,智能中心研究人员以“人生能有几回博”的誓言发展我国高性能计算事业的精神,激发我们走上了高性能计算应用、研究和教育的道路。在我们回到中国科大后,智能中心的技术人员帮助我们及时解答曙光1000使用过程中遇到的各种问题。孙凝晖后来到普林斯顿大学学习,其间还经常给我发mail,询问曙光1000的使用情况,为我们解答曙光1000的应用问题。 我们也经常把曙光1000使用过程中用户反映的问题,及时反馈给研制人员,以利于他们在下一代系统设计时作为参考。正是这种有高性能计算系统研发和教育人员直接参与的用户支持,保证了以后在中国科大能顺利开展一系列高水平的高性能计算应用。

        在智能中心培训时,我认识了中科院理论物理所的陈润生和叶元杰研究员,他们正在用曙光1000做一个分子生物学方面的研究课题。在一次用户研讨会上,叶元杰报告了使用曙光1000做出的研究成果和使用曙光1000的心得。我清楚地记得,他把曙光1000比作有32条腿(32个计算节点)的马,刚开始的时候不知道该怎么骑。在智能中心技术人员的帮助下,他不仅学会了骑它,而且取得了以前只能到国外利用那里的并行计算条件才能做出的成果。当时,高性能并行机难用一直是用户普遍抱怨的缺点,主要的问题一是许多并行工具不符合科学家和工程师在开发大多数高性能应用时的需要和工作习惯, 而是要求他们成为准计算机科学家才能理解和使用这些工具; 二是工具随当前的并行平台的变化而变化, 当一个用户从一种并行平台移到另一种并行平台上时,必须重复费时费力的学习过程;三是已有的工具软件多是一些相互独立的实用程序,没有按照一定的集成方法有机地集成为完整的使用环境,加之国内的高性能并行机应用水平本来就低,使得大多数用户在使用并行机时都有畏难情绪。我们就遇到过这样的用户,宁愿用慢一点的机器,也不愿费时费力将已有的串行程序并行化,移植到曙光1000平台上。这些感触,促使我后来申请了863项目“曙光3000客户端集成环境的研究与开发”,研制了基于Java/CORBA实现的并行软件开发环境和工具DUET(Dawning Users Environment and Tools),以期改善高性能并行机难用的状况。

        中国科大就像是一个微缩的中科院,有着与院里各研究所对口的院系和前沿学科设置,几乎每个系都有计算科学和工程方面的研究方向和课题。当时很多学科都苦于得不到并行计算条件,做出了很好的理论成果却得不到大规模的计算条件来验证。当第一台曙光1000落户科大的消息传开时,大家学习并行计算的热情很高。仅在一年多的时间里,我们应用户要求做了大大小小不下几十次用户培训,手把手教大家使用曙光1000。那个情形就像是一个打工队,今天去这家,明天到那家。合肥中心所有的成员都是科大计算机系的老师和学生,做这些工作完全是义务兼职的。我当时被分配重点做生物系、力学系和安徽省气象局三家用户的技术支持工作,从用户那里学到了不少计算科学和工程方面的东西,对高性能计算的需求和意义有了更深刻的理解。为了帮助全校的师生学会用并行机,我申请开设了《并行程序设计》课程,还参与讲授了其它一些并行计算相关的课程和讨论班。经过这些课程学习的师生,现在都已活跃在校内外许多研究组里。他们尤如星星之火,在各自的专业领域里传播着高性能并行计算的火种。 95年时,在我们学校里懂高性能并行计算的人算得上很“前卫”了。而现在,我们学校里搞计算科学和工程的人不懂得高性能并行计算就显得很“落伍”。我们在高性能并行计算教学上取得的成果,荣获了国家级教学成果二等奖。

        通过几年的努力,合肥中心的人员和硬件基础设施建设不断完善,为用户提供了良好的高性能计算条件和学习交流环境,培训出了一大批立足国内做高性能计算的用户。过去,有的用户由于国内的计算条件所限,只能谋求与国外研究机构的合作。通过使用曙光1000,他们建立起对国产并行机的长期需求。合肥中心与安徽省气象局,淮河水利委员会联合研制的“安徽省防灾减灾智能信息与决策支持系统”还荣获了2001年度国家科技进步二等奖。

第二次在ICT“留学”,学会“多发射”

        2000年11月,我和科大体系结构教研室老主任郑世荣教授一起来所里参加关于计算所的CPU研制方案的讨论,系统结构室室主任唐志敏研究员向我们介绍了一些设计思路,当时我们想领一些任务回学校去做。这次来,郑世荣教授的主要目的是想帮助我建立起与计算所系统结构室年轻一代研究人员的联系。他就要退休了,十分希望我们年轻人以后能好好合作,保持建校以来与计算所传统的“所系结合”关系。

        我见到了科大86级校友胡伟武,他的本科毕业论文是在我们室的一位老师指导下完成的,设计实现了一个x86处理器。他兴致勃勃地向我介绍了他已经开始做的一个RISC处理器设计,并信誓旦旦地说他要在国内第一个做出能跑Linux操作系统的处理器。“我做不出来谁做得出来?”,我又看到了80年代科大学生特有的“狂妄自信”。我当时萌生的一个想法是一定要把他的拉回去给学生上课,用他做榜样重新树立科大学生的自信心,也帮助学生认识计算机系统结构的重要性。科大58年建校时就设立了计算机专业, 是我国最早的计算机专业之一。该专业的许多老师曾是全国计算机训练班的学员, 参与了我国第一台自行设计的107计算机的研制工作。科大体系结构是国内最早建立的硕士学位点之一。但是, 最近几年, 由于种种原因, 体系结构专业的教学和科研队伍后继乏人, 体系结构主干课程的整体教学水平在下降,体系结构教研室到了近乎解散的境地。在科大,修硬件课程的学生越来越少, 愿意做硬件方向研究工作的学生也越来越少,在每年300多名报考科大计算系的研究生中,考体系结构专业的只有10来个人。就是在这种境况下,系里把我这个博士刚毕业,还只是讲师职称的人推到的体系结构教研室主任的位置上。从计算所回到学校后,我决定要以博士后的身份来计算所学习,参加CPU项目,从外到里把计算机的工作原理真正搞清楚。我向院系领导说明了申请去计算所“留学”的意义,得到了领导的支持,安排好我承担的教学和科研工作,让我专心去计算所学习。

        2001年3月,我到计算所系统结构室做博士后,进入了CPU组,参与龙芯1号的研制工作,当时这个项目还没有得到国家经费的支持,全组才10来个人。胡伟武给即将诞生的龙芯1号起了两个候选的小名“狗剩”和“狗蛋”,让大家选定,因为文档交流和写模拟器经常要用Godson这个名字。 在龙芯1号的FPGA验证芯片上把Linux操作系统和SPEC CPU 2000跑起来后,胡伟武带着课题组回科大,并顺道去黄山休整。一路上,唱CPU组组歌、评选十大新闻,胡伟武不断地用“要有自已的芯片,要用自已的芯片做并行机“的热情感染大家。经过龙芯1号的研制,CPU课题组从10多人发展到50多人,为承担由科技部和中科院共同资助的龙芯2号的研制工作做好了人才和技术的储备。2001年下半年,龙芯2号的科研任务还没有下达,龙芯1号还在做物理设计的同时,课题组就安排我着手做龙芯2号体系结构设计方案的研究工作。我们首先把当时所有的商用芯片体系结构文献都彻底摸了一遍,对涉及到的关键技术的原始学术论文进行了深入分析,并对两级动态分支预测器、Cache优化设计等性能关键技术进行了实验评估。到02年7月份,基本确定了龙芯2号的体系结构设计方案,接下来写模拟器,做性能分析,不断地调整和优化设计。龙芯2号的体系结构设计采用了当代通用微处理器同步先进的体系结构技术,能用的先进技术基本上都用上了,做了一个4发射的结构。龙芯2号深受Alpha体系结构设计思想的影响,采用同一个结构设计,用不同的工艺代实现,使性能不断提高。龙芯2号没有走激进的宽发射指令并行处理器道路,避免了使用现在看来不必过于复杂的技术,是符合当前处理器低功耗、低复杂性的设计要求的。通过参与龙芯2号的体系结构设计,我看到了当代指令级并行处理器体系结构的局限性,理解了超标量和超长指令字处理器结构其实都不是最好的开发指令级并行性的方法,指令发射宽度只能做到4-6发射,软件和硬件的复杂度就已经难以为继了。

        为了帮助我今后更好地理解和参与国家重大科研任务,课题组有意识安排我负责“十五”计算机软硬件主题体系结构专题《处理器体系结构战略目标调研报告》的撰写,并参与龙芯课题相关项目的申请,负责开展下一代芯片的预研工作。参加完龙芯2号的体系结构设计后,我开始考虑如何开展下一代芯片体系结构的预研。在唐志敏和胡伟武研究员的支持和帮助下,我申请了所基础研究基金项目和国家自然科学基金项目。项目有了,但是当时课题组一时难以抽调人力专门来做这件事情,工程任务一紧,参加预研工作的人就全得回到工程任务中去,研究工作很难持续开展。在科大院系领导的大力支持下,我回科大提出筹建了一个“所系结合”的计算机体系结构联合实验室,组建了一支新型微处理芯片体系结构研究小组,围绕多线程多核微处理芯片体系结构开展研究工作。同时,我在中科院研究生院和中国科大研究生院开设了《处理器体系结构前沿》课程,面向未来半导体技术和应用的发展趋势,研讨一系列高性能处理器和存储器体系结构的前沿问题,包括各种最大化片上并行性和性能的技术,同时讨论工艺和应用的发展对处理器和存储器体系结构及其设计的影响。课程的目的是认识下一代高性能处理器设计面临的挑战和机遇,探索需要研究和解决的关键问题。通过一些小型的课程研究项目,分析和评估一些有发展前途的体系结构技术。这门课程受到了中科院各相关研究所和中科大计算机科学与技术、电子工程、微电子等专业硕士和博士研究生的普遍欢迎,他们中的大多数人都将参与中科院计算所牵头的下一代高性能通用芯片和并行系统的研制任务。通过完成这项教学工作,不仅帮助学生们认识了计算机系统结构的前沿技术,也促使我深入思考了下一代高效能通用微处理芯片的关键技术途径,并在与计算所联合申请的国家973项目,863项目和自然科学基金重点项目的申请中,提出开展对下一代通用微处理芯片体系结构中一些关键问题的研究,提出研究一种将冯?诺依曼计算模型(控制流计算模型)与数据流计算模型优美结合的类数据流计算模型,设计在编译器和微体系结构之间建立良好的软硬件界面的类数据流指令集体系结构DISC(Dataflow-like Instruction Set Computer),不需要硬件在执行时再动态检测数据依赖,避免乱序执行的RISC和CISC设计中很多低效且耗能的结构。提出一种可重构的分布式多核计算结构,有效地实现DISC指令系统。该结构可根据应用的需要扩展指令窗口的大小、发射宽度和运算部件数,使指令窗口能从现代通用微处理器芯片的至多200条指令扩大到上千条指令,发射宽度能从4-6条指令扩大到几十条指令,对于向量和流式应用的指令窗口和发射宽度可以更高,期望该结构可为各种应用目标提供通用的计算平台,探索一些新的单点的体系结构和微体系结构方法所难以解决的问题。

“留学”后记

        从曙光1000到曙光3000,我看到,一套套系统卖出去,一步步脚印留下来。从龙芯1号到龙芯2号,我看到,一块块芯片流出去,一个个故事传出来。在计算所学习和工作的日了里,我先后参与了这几代曙光机和龙芯芯片的研制工作,目睹了一代年轻学子在承担国家重大科研任务中经受到的锻炼,体会到了解决好“年轻人问题”是一个科研单位能始终保持活力承担国家重大科研任务的基本前提。许多我教过的刚刚博士毕业的学生,通过参与国家重大项目,在短短的几年里便学会了挑重担,完成了许多在其它单位工作十几年甚至几十年的研究人员的成长历程,体现出计算所领导大胆培养和起用年轻人,老一辈科学家甘为人梯,营造了难得的“做大项目出大人才”杰出人才成长环境。很多已经离开计算所,现在其他单位工作或已经“下海”的研究人员,都坦言计算所培养了他们,为他们一生的事业奠定了基础。在计算所,一个年轻人,只要你有本事,有胆量,你就有机会做你想做的事。刚毕业的留所人员暂时申请不到外面的课题也能开始你想做的科研,所里会拿钱来支持你。在计算所,我看到,只要一声令下,上午要求把一个实验室建好,下午设备采购人员就将你要的工位和机器为你购置和安装到位。你申请不到科研项目,报不上科研成果奖,科研处的老师比你还急,跑得腿比你还多。去全国各个高校做招生宣传,“搜罗”优秀学生,人教处的老师可谓不竭余力。图书馆馆长更像是全所科研人员的老师,总是想办法让大家多读书,读好书,跟上先进技术发展的潮流,……。计算所上下,被一种无形的力量拧在了一起,为一流的科研人员提供一流的支持,共同书写我国计算机事业的新篇章。

        正如中国科大现任党委书记郭传杰所总结的那样,“全院办校、所系结合”是中科院当年的领导、科大的创建者们为科大确立的办学方针。正是这一方针,使建国初期新建的科大迅速跻身全国名校之列,书写了科大早期的辉煌,造就了我国教育史上奇迹。它所体现的原则、精神已经积淀为中科院所系文化的一部分,成为科大办学的宝贵精神财富。

        计算所的专长在于系统结构, 一直拥有国内一流的研究队伍和研究条件。改革后的计算所精神面貌焕然一新, 成为科大优秀学生向望的学习和工作单位, 目前正承担着许多系统结构相关的国家重大科研项目, 在我系兼职的几位博导都是这些项目的负责人和学科带头人,在郭传杰书记的推动下,计算所所长李国杰院士目前还亲自兼任了科大计算机系的系主任。因此, 科大计算机系有充分的有利条件, 通过与计算所的紧密合作, 使科大计算机系计算机系统结构的教学和科研走出低谷, 踏上健康发展的轨道。科大计算机系最需要的是计算所帮助培养一支高水平的计算机系统结构教学和科研队伍。从长远来说, 计算所的未来发展也同样需要科大计算机系统结构学科的健康发展, 从而得到从优秀学生到互补性基础研究的有力支持。通过在计算所的工作和学习,加深了我与年轻一代研究人员的合作意识,对科大计算机系统结构学科的未来发展增添了信心。