English | 繁体 | RSS | 网站地图 | 收藏 | 邮箱 | 联系我们
首页 新闻 机构 科研 院士 人才 教育 合作交流 科学普及 出版 信息公开 专题 访谈 视频 会议 党建 文化
  您现在的位置: 首页 > 专题 > 旧专题 > 创新专题 > 科学思想库——中国科学院创新案例 > 《科技创新案例》摘录
坚韧赢得贵客 创新抢得先机
--张兆庆教授编译组为英特尔开发出开放源码编译器
  文章来源: 发布时间:2003-11-17 【字号: 小  中  大   

张兆庆 女,现任中国科学院计算技术研究所研究员,博士生导师。1938年1月生于北京。主要研究方向是计算机语言编译系统。在六五、七五、八五等重大攻关项目中为多台国产大型机研制高级语言编译系统。为863项目曙光并行机系列研制了并行程序设计环境。在并行编译和工具环境方面的研究工作获得国内外专家高度评价,其领导的研究组也被国际著名学者称为居此领域的世界先进行列。研究成果被Intel、Motorola等国际知名大计算机公司承认,与他们开展了多项国际合作项目,取得显著社会效益与经济效益。作为主要完成者的获奖项目:国家科技进步奖一等奖2项,国家科技进步奖二等奖1项,中科院科技进步特等奖2项,中科院科技进步奖一等奖2项。在计算机学报等刊物和会议上发表学术论文数十篇。

美国英特尔公司为了开发IA-64位开放源码编译器,在全世界范围内寻找合作伙伴,他们经过认真地调查研究,2000年春节最终选定了中国科学院计算所张兆庆领导的编译组。美方出经费、提要求,由中国人为主进行开发,经过一年的密切合作开发出IA-64位开放源码编译器,到2001年初项目鉴定时,性能比当时最先进的开放源码编译器Pro64 0.13高6%性能比Pro64高6%,现在已经提高了20%以上,达到国际领先水平。

机会之所以降临到张兆庆教授领导的编译组的真正原因。不仅是他们已经研制成功多并行编译及优化编译系统,更重要的是因为张教授执着的精神和坚定的态度。她认为我国这样一个大国,迟早会搞CPU芯片,因为它是信息领域的核心技术,为之配套的编译器迟早会用得上。因此在还剩两个学生的时候,她仍然挺了过来,为国家培养和保留了一支编译队伍。所以,在一次与张教授谈合作的时候,英特尔公司的首席谈判专家曾这样提到,张教授坚忍不拔的性格是促使他下决心与计算所合作的原因之一。

创造性应用代码重用思想,一举奠定成功基础。张兆庆凭借渊博的理论知识和丰富的实践经验,敏锐地想到代码重用的重要思想,果断地决定开发开放源码编译器,最大限度地利用已有的代码。他们通过对世界范围编译器的比较分析,摸清了Pro64的前身是SGI的产品编译器,2000年开放了该编译器的全部源码,它包括继承了的循环优化和与机器无关优化部分,也包含了许多当时最先进的技术。但后端在ILP优化和机器相关优化方面相当薄弱,对于IA-64体系结构所能提供的一些先进的技术体系结构,没有充分利用。基于上述分析,决定采用Pro64作为自己的开发基础,改进它薄弱的后端, “投机取巧”,集中力量做编译基础设施和针对IA-64与的机器相关的优化,一举奠定了成功的基础。

坚持以我为主,努力争取合作方帮助。张兆庆说:在改革开放的大环境下,我们中国的科学家既要有自信心,又要承认与发达国家在科学技术上的差距,在汲取国际先进学术思想的同时,要虚心学习发达国家宝贵的工程经验。他带领编译组首先研究调研读了几十篇近几年来编译领域的重要文献;在这个基础上研究IA-64体系结构,力争搞清楚每一个相关的细节,这方面尽量争取得到lntel公司资深研究人员的帮助;每一部分设计都与lntel公司的研究人员充分讨论,反复论证,并通过原型实现验证。在确保设计的先进性又没有重大问题之后,由各部分的主要设计者编写了规范的低层设计文档。最后,对文档进行了两次严格的评审,第一次在课题组内部进行,第二次由lntel公司组织进行。这些都为项目的成功提供了保证条件。

开发编译专用工具,将代码错误缩到最小范围。开发编译专用工具,将代码错误范围缩小到文件、函数、区域、基本块、甚至是若干指令,这样就大大降低了错误定位的困难。他们同步研制了一整套测试和调试工具,包括编译系统测试环境,数据结构可视化工具、软件错误定位工具等。数据结构可视化工具能够将编译系统内部的复杂的数据结构,如全局和区域的控制流程图和依赖图,区域树,谓词划分图等,以图形的形式显示出来,使得很多问题一目了然。软件错误定位工具能够自动缩小错误的范围。特别的是运行结果错误,定位相当困难,尤其是如面对CPU2000测试程序包测试,平均大小都在几万行以上,若没有这样的工具,真不知道错误从何查起。

当然,并不是所有的问题都可以由这些工具自动解决,人的才智、毅力和经验是不可代替的。

不畏枯燥潜心调试,花大气力优化编译器。性能调试是优化编译器课题的重要组成部分,也是最艰苦的部分,更是最枯燥的工作。该项目第一期目标是比Pro64的性能高5%。但是,性能调试开始的时候,项目的性能比Pro64的性能低4%。面对着很多bug,,他们也经历无数挫折时的焦急和忧虑。为了尽快优化编译器性能和功能目标,首先,从静态代码分析作起,分析比较了大量的汇编代码,注意每一个细节,不放过任何提高性能的机会。二是每部分的开放发人员也都作细致的性能分析,主要是将自己分工的部分的实际性能和设计时所预测的性能、其他编译器相应部分的性能做比较,找到这部分的设计和实现缺陷,并加以改进。三是还作了很多性能分析的流程、方法、和工具方面的研究。他们开发了统计静态和动态执行周期数工具,这些工具对于快速找到若干版本之间的性能差别有很大帮助。四是制定了严格的提交制度,尽量不让性能下降的改动提交。到项目鉴定时,在鉴定的基础上,经过大家艰苦工作,翻译器性能已经比Pro64高6%,现在已经提高了出20%以上。世界上已有许多大学、研究单位用此开放源码翻译器作为他们的研究平台。

撰稿人:刘振坤

点 评:

张兆庆教授30年如一日,坚持编译器的研究开发,坚持“站在国际前沿,作一流工作”的追求。她们研究组能与INTEL这样的国际著名公司在核心领域中开展合作,并取得成功,首先源于锲而不舍、敢于挑战、不畏艰苦的精神;同时也得益于在研究方法上,善于“取巧”和“为我所用”,吸收已开放的SGI编译器源码中先进的部分,提高自己的开发基础;在国际合作中,坚持以我为主,同时尽量争取得到INTEL公司资深研究人员的帮助。这也是我国掌握核心技术,向世界领先技术挑战的成功案例。

  打印本页 关闭本页
© 1996 - 中国科学院 版权所有 京ICP备05002857号  京公网安备110402500047号  联系我们
地址:北京市三里河路52号 邮编:100864