中国科学院计算技术研究所
中国科学院
English
内网
中国科学院计算技术研究所
中国科学院
English
内网
MENU
Toggle navigation
首页
实验室介绍
实验室简介
实验室领导
固定人员
学术带头人
学术委员会
管理运行机制
实验室风貌
组织结构
联系我们
新闻动态
科研动态
实验室新闻
研究成果
科研项目
获奖成果
论文论著
发明专利
软件登记
研究队伍
院士专家
研究员
副研究员
人才招聘
合作交流
学术交流
合作项目
承办会议
研究生教育
招生信息
博士生导师
硕士生导师
博士后
毕业生交流
开放课题
指南通告
管理规定
历年资助
执行情况
国重快讯
创新文化
党群园地
形象标识
战略研究
仪器设备
管理制度
设备介绍
预约共享
当前位置 >>
首页
>>
研究成果
>>
科研项目
研究成果
科研项目
获奖成果
论文论著
发明专利
软件登记
面向体系结构的编译优化、并行化与代码生成技术
撰稿:
摄影:
发布时间:2007年08月29日
随着现代体系结构的不断演进,与之相适应的并行化、编译优化与代码生成技术也一直是国际学术界关注的研究前沿。在过去的五年中,我们分别在面向层次并行体系结构的多粒度自动/半自动并行化、SIMD并行性的自动发掘、现代微处理器体系结构的代码生成与优化、以及编译体系结构与工具等多个方面开展了研究工作,取得多项重要成果。我们研制的开放源码编译系统目前已被国内外多所大学和公司采用,作为研究和开发的平台。在该系统基础上研制成功的龙芯编译系统在龙芯微处理器的研制过程中发挥了重要作用,有效地提升了龙芯1系统的整体性能,为龙芯1系统的成功应用作出了贡献,并通过处理器和编译器的协同设计,支持了龙芯2微处理器的预研。随着龙芯微处理器的研究与应用的深入,针对芯片特点进行优化并提供开发用户高级编程界面的高性能编译系统的重要性将会凸显出来。其市场和应用方面的价值既可以作为与微处理器配套的增值软件体现出来,也可以因为提高了系统的整体性能和可编程性而间接地体现出来。
目前我国高性能计算机多为SMP机群系统,以我们研制的并行编译系统为原型,继之以产品化,提供给市场,可以加快高性能计算机用户研发并行软件的时间。这将大大有利于高性能计算事业的发展,对我国国民经济发展和国防建设都将有深远意义,也将提高我们在并行编译领域的国际影响。
随着微处理器向片上多核结构(其中的单个处理器核又可以支持多线程以及指令级并行,从而可以发掘各个层次、不同粒度的并行性)发展,一个亟待解决的问题是如何表达应用中蕴含的不同层次、不同粒度的并行性,将其有效地提取出来并映射到并行的硬件结构上去。这一问题的解决必须要有编译系统的支持,但依靠传统的串行程序自动并行化的方法尚不能很好地解决这一问题,因此我们需要从一个较高的视点上,重新审视这一问题所涉及的各个方面,充分利用片上迅速增长的晶体管资源所可能提供的硬件支持,以及各种新的应用领域所提供的并行化和优化机会,研究与之相适应的程序设计模型、程序设计语言、编译优化技术、和运行时系统,探索有效解决这一问题的系统性方法。在过去几年中,我们循着这一思路,在上述几方面开展了多项研究,取得了若干重大成果。
此方面的研究先后得到国家973项目“片上并行系统的编程模型与支撑环境”、863软件重大专项课题“高性能编译系统”、自然科学基金重点项目“并行程序设计环境关键技术”、自然科学基金青年项目“动静态信息结合的编译优化方法的研究”、863面上项目“面向机器结构的编译优化及二进制代码的动态优化”、以及与Intel公司的合作研究项目“开放源码研究编译系统”和“网络处理器IXP编译系统”的持续资助。
1 面向层次并行体系结构的多粒度自动/半自动并行化技术
1) 部分冗余计算划分的全局问题的提出与解决:我们在国际上首次提出并解决了部分冗余计算划分的全局问题,并通过实验证明这一问题的解决能够显著提高并行加速比。我们的这一工作发表在今年的并行处理国际会议上,获得很高的评价。传统的数据并行的并行化编译器采用简单的计算划分模式,即根据数据的分布模式结合某种形式的“拥有者计算”来确定。我们发现,科学计算程序中,人们经常使用临时数组,保存中间数据,在后继的循环套或者迭代之间达到重用;科学计算程序中,还常常出现一些结构复杂的循环套;对于这样的程序片段,传统的计算划分技术引入的频繁通信,对并行程序的性能和可扩展性产生非常大的影响。我们提出更广义的计算划分技术—部分冗余的计算划分技术,用少量的冗余计算和少量新增通信换取频繁的通信。在传统的计算划分的基础上,我们增加了一个计算划分的传播阶段。提出了一个两步的解决方案。
2) 分布的OpenMP编译器中混合并行模式的实现:我们研究了混合并行模式下,两层并行的代码生成中的若干关键技术,包括两层并行的划分和优化、两层并行的实现方式、执行模式,并在一个原型系统中实现了相应技术,获得了初步的实验结果和OpenMP制导自动生成的经验。外层并行对应的是分布在各个节点(运行时也许在同一节点内)上的一组进程,它们之间通过消息传递保证数据一致性;任务调度是基于ON HOME制导;外层并行的实现模式是SPMD,节点间并行由全局优化的数据分布和计算分割支持。内层并行对应每个进程内一个线程组,在节点内并行执行;节点内通过在原始并行域上的合并和扩展获得较粗粒度的节点内并行性。数据一致性由OpenMP制导隐含的(或显式的)同步保证,同步点的优化是我们的特色。
3) 跨过程调用点的计算划分:分布式系统的并行编译系统中,包含过程调用点的并行循环的识别和划分,对于发掘粗粒度的并行性具有重要的意义。强大的过程间分析能力,是发掘粗粒度并行的关键。我们系统中精确的过程数组副作用信息,使得跨调用点的并行分析成为可能。跨过程的计
附件下载:
研究成果