CCCF动态 | 陈文光教授专访
CCF杰出会员、CCF副秘书长、清华大学计算机系教授陈文光一直担任CCF CSP技术委员会主席,负责组织制定CSP认证标准,主持CSP命题和评价,为CSP的权威性、专业性作出了杰出贡献。为此,陈文光获得了2020年“CCF杰出贡献奖”,CCCF动态栏目编委对他进行了专访。
编者按:陈文光,CCF杰出会员、CCF副秘书长、YOCSEF荣誉委员,清华大学计算机系教授,兼任青海大学计算机系主任,北京智源学者。他的主要研究领域为操作系统、程序设计语言与并行计算。他曾获得国家科技进步二等奖、国家教委科技进步二等奖和北京市科技进步二等奖各一次。陈文光一直担任CCF CSP(计算机软件能力认证)技术委员会主席,负责组织制定CSP认证标准,主持CSP命题和评价,为CSP的权威性、专业性作出了杰出贡献。为此,陈文光获得了2020年“CCF杰出贡献奖”。
问:陈老师,您一直担任CCF CSP技术委员会主席,请您简单介绍一下CSP开展的相关工作和CSP未来的发展方向。
陈文光:CCF CSP的设立起源于我负责清华大学计算机系研究生招生时的感想:有一些学生从名校计算机相关专业毕业,成绩单光鲜亮丽,但是被录取为清华的研究生之后却被发现缺乏基本的编程能力,在科研工作中遇到了很大挑战。另一方面,企业界对于计算机专业毕业生的能力也抱怨颇多,认为大学培养的学生软件设计和开发技能不足,很难招聘到合格的人才。这种供给与需求上的矛盾促使我们思考:如何促进大学的计算机本科教育?如何提高研究生的培养质量?如何为企业培养更加合格的人才?基于这样的思路,CCF CSP应运而生。
CSP以上机考试的方式对学生进行考查,这种方式比笔试能更真实地反映学生的程序设计语言、算法、编程、调试能力。自2014年第一届CSP以来,CSP已经开展了21次认证。目前,CSP每年的考生人数都在3万左右,不少CSP高分考生在研究生入学复试中免机试或被知名企业录用。更重要的是,有越来越多的高校将CSP纳入教学计划,要求毕业生在CSP认证中必须达到一定的分数才能毕业。这体现了CSP“以考促教”的初衷。
CCF后来又增加了一个CCSP竞赛(大学生计算机系统与程序设计竞赛),考生在参加CSP认证并达到一定分数后可以参加CCSP。CSP只考查考生的算法设计和编程能力,缺乏对考生计算机系统能力的考查;CCSP则增加了对考生计算机系统能力如操作系统、编译原理方面的考查,可以促进学生了解系统方面的知识,帮助他们在系统功能的完整性、性能优化等各个层面获得经验。
问:您在科研方面做得非常出色,曾获得了国家科技进步二等奖、国家教委科技进步二等奖和北京市科技进步二等奖,可否介绍一下您主要的研究工作?
陈文光:我的科研工作主要可以分为两个阶段,第一阶段是编译优化的工作,第二阶段是系统方面的工作。
我第一阶段的工作主要与编译器相关。我读博期间的主要工作是自动并行化编译,起初是在一个开源的编译器上从事数据流分析等方面的优化工作。但是做了几年后发现,此优化工作能够产生的收益越来越少,如在SPEC CPU 2006上获得的性能提升只有1%左右。从研究的角度讲,自动并行化编译已经不是一个好的研究点了。后来我又做了一段时间的程序分析,在这个方向取得了一些成果。
直到我遇到了莫尼卡·拉姆(Monica Lam)(编译理论圣经“龙书”《编译原理》(Compilers)的合著者),她也从并行编译研究转去做程序分析的工作。她说,好的软件不是靠程序分析、查错查出来的,而是由正确的人构建出来的。也就是说,我们做一个程序分析工具,它只是一个从属性的工具,没那么重要。你要想把一个不会写软件的人写的软件变成功能正确、性能优秀的软件,基本上是不可能的,因为它在构建的时候就已经失败了。程序分析工具当然有它的作用,但是它并没有解决整个系统中最重要的问题。莫尼卡·拉姆的这个观点给了我很大的感触。从那时起,我开始思考从计算机系统的角度来理解整个问题。2008年,麻省理工学院(MIT)的弗朗斯·凯斯霍德(Frans Kaashoek)教授来中国访问了一年,他有一半时间在微软亚洲研究院,另一半时间在清华大学担任EMC讲席教授组首席教授。弗朗斯·凯斯霍德是国际上计算机系统领域最顶尖的科学家之一,他在计算机系统领域的研究方法也对我产生了很大影响。这促使我开始了第二个阶段的研究。
我第二阶段的工作主要与图计算系统相关。狭义上的programming system(如编译器),是一个比较底层的系统,可以把一个高级语言翻译成机器语言。广义上的programming system(如MapReduce),是一种典型的编程接口,规定了并行执行的模式,用户只要写串行程序就可以做成规模非常大的并行应用。我从这个角度切入开始做programming system的研究。2009年前后,社交网络发展比较快,使我对图计算产生了一定的兴趣,于是我开始思考怎样更高效地做图计算,在图的编程系统上做了一系列工作。我2015年完成的GridGraph系统主要是做了图的二维划分,可以在访问外存的时候保证边的顺序访问和点的局部性。我在2016年完成的Gemini系统扩展至分布式内存上,比之前别人的工作快了将近20倍,能够解决非常大规模的图问题,而且性能也很优异。2018年,我开始做可扩展图计算系统——“神图”,“神图”在国产“神威”超级计算机的4万个节点1000万核上运行,可以做以前做不了的图规模,如搜狗2000亿网页的真实图,边表有137 TB,在“神图”上8.5秒就可以完成一轮PageRank迭代,大大提高了图的处理规模和性能。“神图”这个工作也入围了2018年的ACM“戈登·贝尔”奖提名应用(ACM Golden Bell Prize Finalist)。以上这些工作主要是静态图计算,后来我们开始做动态图计算,比如2020年我们发表在超大型数据库国际会议(VLDB)上的LiveGraph工作,主要在图存储的数据结构上进行了探索,研究如何同时支持高效的图查询和更新。2021年我们又研究了用流计算的方式对于图上的复杂查询做增量式计算,能够得到很好的性能。
问:您在ChinaSys2021上的主题报告是关于图计算和图数据库在金融领域的应用,您是怎么开始从事这方面研究的?这个领域目前的进展和面临的挑战都有哪些?
陈文光:2016~2018年,我们已经做出了很好的系统,但是怎么能让一个系统真正在企业里用起来还是一个问题。
我2020年开始在蚂蚁集团图计算部门兼职,一方面的原因是我想解决这个问题。蚂蚁集团拥有业界最大的图应用场景,拥有万亿条边的图,支付或者转账都会改变这个图,使得图的变化非常快。系统判断一笔交易是否合法,需要在图上做查询。“双十一”的时候蚂蚁集团每秒大概有58万笔交易,由于有很多规则需要检查,这58万笔的交易映射到数据库上的查询量非常大。同时对恶意交易的检测也是一个博弈问题,因为黑产总是在不断寻找系统的漏洞,这使得查询和分析算法非常复杂。另外,金融场景中一个非常严格的要求就是低延迟,一笔交易是否被批准需要在规定的一个很小的时间窗口决定。总的来说,金融场景对图计算技术的需求可以简单归纳为:极大数据量下的快速变化的图上,需要查询的算法日益复杂,但仍要保证极低延迟,这对相关系统技术提出了非常重大的挑战。我们过去做的研究多多少少都覆盖到了这几个方面,也在和蚂蚁集团内部的团队一起合作尝试研究新的系统技术,以更好地解决这些挑战。
未来,从更广泛的领域来看,我觉得数据处理的软件栈需要重构。现有的软件栈基于的编程语言(如Java)存在很大的时间开销和空间开销,也不能很好地利用新硬件。我觉得大规模数据处理存在着机遇,保守来看,如果整个系统全部重构的话,得到5~10倍性能的提升是很有可能的。
问:您怎么看人工智能(AI)+高性能计算(HPC)的趋势?
陈文光:我认为可以从两个方面来考虑这个趋势。首先是AI从HPC这边学到了什么?AI从HPC这边学到了要做大规模并行,比如负载平衡、高性能通信等。特别是AI对于通信的需求,可能甚至高于大量HPC应用对于通信的需求。其次是HPC从AI这边学到了什么?过去靠模拟方法可能很难获得好的解,现在通过AI方法可以让HPC应用获得更好的效果。过去HPC机器主要的运算精度是双精度,但对于AI算法,单精度和半精度或者混合精度的算法可能会变得越来越重要,这也会造成体系结构上的变化。另外一个变化是对输入/输出(I/O)的需求,目前这些应用训练大模型还是要用HPC,对局部的I/O和高性能的本地缓存都有很高的要求。
超算TOP 5中的“顶峰”(Summit)、“富岳”(Fugaku)、“神威·太湖之光”都是不同的体系结构探索,都有很好的结构。天河一号较早地引入了GPU;“神威·太湖之光”通过片内众核(一个芯片里面封装4个主核和每个主核带32个众核)形成一种非常聪明的体系结构;顶峰又回到了天河的方式;IBM Power芯片加了6块GPU卡;富岳则是同构的,相当于把神威里的众核变成向量处理单元。这都体现了不同形态的探索,都可以达到TOP 500第一名,当然它们在可编程性、软件成熟度上会有一些差别。
问:您培养了众多优秀的博士毕业生,您认为怎样才是达到毕业要求的合格博士生?您对博士生毕业后的择业有什么建议?
陈文光:我觉得合格的博士生就是能完整地从提出问题到做出一个系统,并解决问题,然后做实验评估,最后写论文发表。把这个流程走完,基本上就是一个合格的博士毕业生了。我一直在鼓励学生不要冲论文数量,不要发表质量不太好的成果。这可能和计算机系统的特点有关,在这个领域完成上面的流程通常需要几年时间。令人欣慰的是,在过去20多年时间里,已经有30个左右的优秀博士生从我这里毕业并在各行各业继续发光发热。
我建议博士生毕业后在进行职业选择的时候,多考虑高校教师这个职业。从职业特点来看,高校教师是个没有上限的职业,对于很多学生来说,遇到好的高校教师甚至能够改变其人生路径。现任MIT计算机系主任阿尔温德(Arvind)十多年前访问清华时说了一句令我至今记忆犹新的话:如果MIT和清华的毕业生不去当教师,应该谁去当教师呢?
高校教师作为职业有很多优点,例如在研究课题的选择和时间分配上有非常大的自由度,工作相对稳定,具有长期回报。高校教师的特点是在获得长聘教职之前压力大,长聘后可以相当自由地开展深入的研究工作,而不用担心被裁员,是一个相当理想的工作。
问:您对青年科研人员有什么建议?
陈文光:现在的青年科研人员的学术基础和能力都远远超过了我们这一代。如果说建议,我想表达一个点,就是青年科研人员要更专注一些。一段时间内要有一个重心,不要被外部的评价标准绑架,不要评完一个头衔又准备去评下一个。在满足学校要求的标准并解决生存问题后,要能静下心来做基础研究。从自己的兴趣、研究领域的未来出发,寻找需要解决的重要问题,比如研制一个比别人都好的芯片,或者开发一个比别人都好的系统。如果不够专注,你所做的可能离最初的目标就远了,你甚至可能忘记了目标。
杜子东
CCF专业会员,CCCF动态栏目编委,2016年CCF优博奖获得者。中国科学院计算技术研究所副研究员。主要研究方向为智能芯片体系结构。duzidong@ict.ac.cn
特别声明:中国计算机学会(CCF)拥有《中国计算机学会通讯》(CCCF)所刊登内容的所有版权,未经CCF允许,不得转载本刊文字及照片,否则被视为侵权。对于侵权行为,CCF将追究其法律责任
点击“阅读原文”,查看更多CCCF文章。