期刊文献+
共找到17篇文章
< 1 >
每页显示 20 50 100
面向MPI代码生成的Open64编译器后端 被引量:5
1
作者 赵捷 赵荣彩 +1 位作者 韩林 李宝亮 《计算机学报》 EI CSCD 北大核心 2014年第7期1620-1632,共13页
随着计算机体系结构的发展,分布式存储结构以其良好的扩展性逐渐占据了高性能计算机体系结构市场的主导地位.为了将现有的串行程序转换为能够在高性能计算机上运行的并行程序,研究人员提出了并行化编译器.然而,当前面向分布存储并行系... 随着计算机体系结构的发展,分布式存储结构以其良好的扩展性逐渐占据了高性能计算机体系结构市场的主导地位.为了将现有的串行程序转换为能够在高性能计算机上运行的并行程序,研究人员提出了并行化编译器.然而,当前面向分布存储并行系统的编译器发展却相对较慢,而面向共享存储并行系统的编译器及其相应技术已逐渐成熟.一种开发面向分布存储并行系统编译器的可行方法是改进现有的面向共享存储并行系统的编译器,使其自动生成能够在分布存储结构高性能计算机上运行的MPI(Message Passing Interface)并行程序.因此,该文为面向共享存储并行系统的编译器Open64设计并实现了一个支持MPI代码生成的后端.根据分布式并行化编译的特点,主要从自动生成计算划分、改进循环优化和自动生成MPI并行代码3个方面对Open64进行了改进,使其能够实现面向分布存储的并行化编译.实验测试利用带有MPI后端的Open64对串行程序进行编译,生成的MPI并行代码可直接运行在具有分布存储结构的高性能计算机上.通过将该MPI并行代码的执行效率与传统面向分布存储并行系统编译器生成的MPI代码效率进行比较,并行效率有明显的提升. 展开更多
关键词 高性能计算 分布存储 并行化编译系统 open64编译器 MPI代码
下载PDF
Open64源源翻译流程研究 被引量:2
2
作者 高伟 李骁 赵博 《信息工程大学学报》 2013年第5期612-618,共7页
源源翻译是一种有用的编译基础设施,它将高级语言程序转换为语义等价的可再编译的高级语言程序。越来越多的编译器包含源源翻译模块。和其它模块相比,Open64源源翻译模块还不够健壮。为了更好地解决源源翻译过程中出现的问题,首先研究了... 源源翻译是一种有用的编译基础设施,它将高级语言程序转换为语义等价的可再编译的高级语言程序。越来越多的编译器包含源源翻译模块。和其它模块相比,Open64源源翻译模块还不够健壮。为了更好地解决源源翻译过程中出现的问题,首先研究了Open64的中间表示whirl,然后研究了Open64的源源翻译流程,最后通过测试说明源源翻译的重要性。 展开更多
关键词 open64 源源翻译 中间表示
下载PDF
基于Open64的Fortran90程序源源翻译
3
作者 高伟 赵荣彩 +1 位作者 姚远 魏帅 《计算机科学》 CSCD 北大核心 2013年第1期157-160,共4页
源源翻译是一种很有用的编译基础设施,它将高级语言程序转换为语义等价的可再编译的高级语言程序。目前Open64最新版本5.0中的Fortran90源源翻译还不是很完善,其中有两个突出问题:一是不支持动态数组的翻译;二是含有复杂数据结构的程序... 源源翻译是一种很有用的编译基础设施,它将高级语言程序转换为语义等价的可再编译的高级语言程序。目前Open64最新版本5.0中的Fortran90源源翻译还不是很完善,其中有两个突出问题:一是不支持动态数组的翻译;二是含有复杂数据结构的程序激进优化后,中间表示出现伪寄存器,源源翻译出错。在研究Open64的翻译流程和中间表示后,应用信息保存的翻译机制解决了动态数组的源源翻译问题和因为中间表示含有伪寄存器而造成的源源翻译错误的问题。测试结果表明,该方法增强了Open64的源源翻译处理能力。 展开更多
关键词 open64 源源翻译 动态数组 伪寄存器 FORTRAN90
下载PDF
基于Open64上的特殊指令合成策略研究与实现
4
作者 陈金娥 黄胜兵 《软件工程》 2018年第2期14-17,共4页
Open64是一个拥有GNU通用公共许可证的开源高性能编译器,设计结构好,分析优化全面,是编译器高级研究的理想平台。本文针对BWDSP处理器所提供的高效特殊运算指令,在Open64基础上研究并实现了面向BWDSP中的特殊指令合成策略。该策略通过... Open64是一个拥有GNU通用公共许可证的开源高性能编译器,设计结构好,分析优化全面,是编译器高级研究的理想平台。本文针对BWDSP处理器所提供的高效特殊运算指令,在Open64基础上研究并实现了面向BWDSP中的特殊指令合成策略。该策略通过扩展并重定向编译器后端模块,能够充分地利用BWDSP中的复数指令、累加指令、乘累加指令和平方和指令等特殊指令。实验结果表明,本文提出的特殊指令合成策略能够很大程度上提高程序的性能。 展开更多
关键词 open64编译器 特殊指令合成 超长指令字
下载PDF
针对嵌入架构的Open64编译器重定向
5
作者 张铎 王生原 董渊 《计算机工程》 CAS CSCD 北大核心 2010年第21期239-241,共3页
基于开源高性能编译器Open64,以PowerPC嵌入式处理器为例,开展重定向关键问题研究和代码实现,自主开发完成一款具有工业产品水准的高性能开源编译器后端。gcc-c.torture和SPEC2000实测结果表明,在正确性和性能方面,该编译器均接近或达到... 基于开源高性能编译器Open64,以PowerPC嵌入式处理器为例,开展重定向关键问题研究和代码实现,自主开发完成一款具有工业产品水准的高性能开源编译器后端。gcc-c.torture和SPEC2000实测结果表明,在正确性和性能方面,该编译器均接近或达到和GCC编译器相当的水平,为进一步研究和应用提供良好的编译工具支持以及实现参考,同时为后续自动重定向等工作奠定基础。 展开更多
关键词 编译器 重定向 open64编译器 POWERPC处理器
下载PDF
Open64的MPI代码自动生成算法
6
作者 向阳霞 裴宏 +1 位作者 张惠民 陈曼青 《装甲兵工程学院学报》 2011年第6期60-63,共4页
针对开源编译器Open64存在MPI不能自动并行化的问题,对Open64中面向Cluster的MPI代码自动生成进行了研究。分析了MPI代码自动生成模块在Open64体系结构中的位置,提出了基于Open64的MPI代码自动生成算法,并对其进行了实验验证。实验结果... 针对开源编译器Open64存在MPI不能自动并行化的问题,对Open64中面向Cluster的MPI代码自动生成进行了研究。分析了MPI代码自动生成模块在Open64体系结构中的位置,提出了基于Open64的MPI代码自动生成算法,并对其进行了实验验证。实验结果表明:该算法不但能够有效降低MPI并行程序的通信开销,而且能够明显提高其加速比。 展开更多
关键词 open64 MPI 并行化编译 代码生成
原文传递
基于Profile信息的连续性分析算法及其优化 被引量:1
7
作者 姚远 赵荣彩 《计算机工程》 CAS CSCD 2012年第9期28-31,共4页
在Open64编译框架基础上,提出一种基于Profile信息的循环内数据访问连续性分析算法及其向量化优化方法。采用反馈式编译优化技术,获取程序运行时的连续性Profile信息,通过结构体剥离和数据重组方法实现程序向量化。实验结果表明,该算法... 在Open64编译框架基础上,提出一种基于Profile信息的循环内数据访问连续性分析算法及其向量化优化方法。采用反馈式编译优化技术,获取程序运行时的连续性Profile信息,通过结构体剥离和数据重组方法实现程序向量化。实验结果表明,该算法针对不规则程序代码,可提供更精确的向量化信息,提高程序的向量化程度。 展开更多
关键词 向量化识别 反馈式编译 连续性分析 Profile信息 open64编译框架 数据重组
下载PDF
基于Define-Use图的MPI通信求解算法
8
作者 赵捷 赵荣彩 +1 位作者 丁锐 陈达智 《计算机工程》 CAS CSCD 2012年第4期247-250,共4页
针对分布存储计算机系统并行编译过程中,为维持数据一致性而产生冗余通信的问题,提出一种优化的通信求解算法。该算法基于依赖关系分析和过程间数据流分析,通过遍历Define-Use图,获得更精确的通信数据,消除过程调用时产生的冗余通信。... 针对分布存储计算机系统并行编译过程中,为维持数据一致性而产生冗余通信的问题,提出一种优化的通信求解算法。该算法基于依赖关系分析和过程间数据流分析,通过遍历Define-Use图,获得更精确的通信数据,消除过程调用时产生的冗余通信。实验结果表明,将算法所得结果作为后端生成MPI通信代码的依据,可以有效减少通信量,加速比接近手工MPI并行程序。 展开更多
关键词 open64编译器 冗余通信 MPI协议 并行编译 Define-Use图
下载PDF
OpenMP数据分布子句自动生成算法
9
作者 黄品丰 赵荣彩 +1 位作者 韩林 刘晓娴 《计算机工程》 CAS CSCD 2013年第3期295-299,共5页
将OpenMP程序扩展到异构多核结构时,非本地存储访问会导致访存开销增加,影响程序性能。针对该问题,引入带数组划分信息的数据分布子句,对数据在异构多核存储系统的布局进行管理,提出一种基于并行循环识别和数组引用模式分析的算法,实现... 将OpenMP程序扩展到异构多核结构时,非本地存储访问会导致访存开销增加,影响程序性能。针对该问题,引入带数组划分信息的数据分布子句,对数据在异构多核存储系统的布局进行管理,提出一种基于并行循环识别和数组引用模式分析的算法,实现该类子句的自动生成。实验结果表明,自动生成的OpenMP程序包含数据分布子句,具有较好的数据局部性,可降低访存开销,在异构多核系统上获得明显的性能提升。 展开更多
关键词 异构多核 数据局部性 数据分布子句 open64编译器 并行循环 数组下标表达式
下载PDF
反馈式编译优化在寄存器分配中的应用技术
10
作者 漆锋滨 姜军 王超 《计算机应用与软件》 CSCD 2009年第8期130-132,共3页
寄存器分配技术是编译器最为关键的优化技术之一。反馈式编译优化是一种基于程序当前和以前运行时的趋势来改变程序以后执行动作的技术,它能够提供给寄存器分配一些有用的优化信息。在分析Open64编译器反馈式编译优化技术的基础上,基于A... 寄存器分配技术是编译器最为关键的优化技术之一。反馈式编译优化是一种基于程序当前和以前运行时的趋势来改变程序以后执行动作的技术,它能够提供给寄存器分配一些有用的优化信息。在分析Open64编译器反馈式编译优化技术的基础上,基于ALPHA结构实现和扩展了反馈式编译优化在寄存器分配中的应用,获得了较好的优化性能。 展开更多
关键词 反馈式编译优化 寄存器分配 执行频率 open64
下载PDF
反馈式编译在循环级性能分析中的应用 被引量:3
11
作者 郝云龙 赵荣彩 +1 位作者 侯永生 朱嘉风 《计算机工程》 CAS CSCD 北大核心 2011年第9期32-34,共3页
针对现有技术难以全面及精确地分析程序循环特性的不足,提出一种程序循环级性能分析的方法。该方法采用动态反馈的编译优化技术,并结合静态分析的部分方法,无需硬件架构的支持,适用范围广。测试结果证明该方法能够对程序的循环部分进行... 针对现有技术难以全面及精确地分析程序循环特性的不足,提出一种程序循环级性能分析的方法。该方法采用动态反馈的编译优化技术,并结合静态分析的部分方法,无需硬件架构的支持,适用范围广。测试结果证明该方法能够对程序的循环部分进行精确分析,帮助程序员找出循环级热点,辅助进行相应的手工优化。 展开更多
关键词 反馈式编译 循环级特性 性能分析 open64编译器 剖面信息
下载PDF
在静态编译器中实现Java异常机制的算法 被引量:2
12
作者 曹志伟 杨克峤 +2 位作者 王伟 周寻 杨珉 《计算机工程》 CAS CSCD 北大核心 2009年第15期88-90,共3页
将Java程序静态编译成可执行程序是使用Java虚拟机动态编译/解释执行Java程序的另一种运行Java程序的方式。针对Java异常机制的特点和静态编译的需求,在介绍Java异常处理逻辑的基础上,提出一种在静态编译器中实现Java异常机制的算法,结... 将Java程序静态编译成可执行程序是使用Java虚拟机动态编译/解释执行Java程序的另一种运行Java程序的方式。针对Java异常机制的特点和静态编译的需求,在介绍Java异常处理逻辑的基础上,提出一种在静态编译器中实现Java异常机制的算法,结合Open64开源编译器,给出该算法的具体步骤以及实现方式,以SPECjvm98为测试集,验证该算法的有效性。 展开更多
关键词 JAVA语言 异常 静态编译 open64编译器
下载PDF
MPI自动并行化编译系统中消息传递代码生成算法 被引量:2
13
作者 陈达智 赵荣彩 +1 位作者 姚远 韩林 《计算机科学》 CSCD 北大核心 2012年第6期301-304,共4页
传统MPI自动并行化编译系统从数据重分布的角度,生成面向分布式存储系统的消息传递程序,但是大量数据重分布通信的额外开销导致其加速比低。为了解决此问题,在基于Open64的MPI自动并行化编译系统后端,提出了一种消息传递代码生成算法。... 传统MPI自动并行化编译系统从数据重分布的角度,生成面向分布式存储系统的消息传递程序,但是大量数据重分布通信的额外开销导致其加速比低。为了解决此问题,在基于Open64的MPI自动并行化编译系统后端,提出了一种消息传递代码生成算法。该算法以统一数据分布为中心,根据给定的并行化循环集和通信数组集,通过修改WHIRL表示的串行代码语法结构树,生成更精确的消息传递代码。实验结果表明,该算法能够较大程度地降低消息传递程序的通信开销,并且明显提升其加速比。 展开更多
关键词 MPI 自动并行化编译 分布式存储系统 消息传递代码 open64 加速比
下载PDF
面向DSP的超字并行指令分析和冗余优化算法 被引量:1
14
作者 索维毅 赵荣彩 +1 位作者 姚远 刘鹏 《计算机应用》 CSCD 北大核心 2012年第12期3303-3307,共5页
如今单指令多数据流(SIMD)技术在数字信号处理器(DSP)上得到了广泛的应用,现有的向量化编译器大多都实现了自动向量化的功能,但是编译器并不适合支持DSP为特征的SIMD自动向量化,主要由于DSP复杂的指令集、特有的寻址模型,以及依赖关系... 如今单指令多数据流(SIMD)技术在数字信号处理器(DSP)上得到了广泛的应用,现有的向量化编译器大多都实现了自动向量化的功能,但是编译器并不适合支持DSP为特征的SIMD自动向量化,主要由于DSP复杂的指令集、特有的寻址模型,以及依赖关系或者数据非对齐等原因而导致向量化效率不高。为了解决此问题,在基于Open64的超字并行(SLP)自动向量化编译系统后端,对SLP自动向量化中的指令分析和冗余优化算法进行了添加和改进,生成更加高效的向量化源程序。实验结果表明,该优化方法能有效提高DSP性能并降低功耗。 展开更多
关键词 单指令多数据流 数字信号处理器 自动向量化 冗余优化 open64
下载PDF
分簇VLIW DSP上支持单双字模式选择的SIMD编译优化 被引量:2
15
作者 黄胜兵 郑启龙 郭连伟 《计算机应用》 CSCD 北大核心 2015年第8期2371-2374,共4页
BWDSP100是一款采用超长指令字(VLIW)和单指令多数据流(SIMD)架构的针对高性能计算领域而设计的32位静态标量数字信号处理器,其指令级并行(ILP)主要是通过其特殊的分簇体系结构和SIMD指令来实现,然而现有的编译框架无法对这些特殊的SIM... BWDSP100是一款采用超长指令字(VLIW)和单指令多数据流(SIMD)架构的针对高性能计算领域而设计的32位静态标量数字信号处理器,其指令级并行(ILP)主要是通过其特殊的分簇体系结构和SIMD指令来实现,然而现有的编译框架无法对这些特殊的SIMD指令提供支持。由于BWDSP100拥有丰富的SIMD向量化资源,且其所运用的雷达数字信号处理领域对程序的性能要求极高,因此针对BWDSP100结构的特点,在传统Open64编译器中SIMD编译优化框架的基础上提出并实现了一种支持单双字模式选择的SIMD编译优化算法,通过该算法可以显著提高一些在DSP上有着广泛运用计算密集型程序的性能。实验结果表明,与优化前相比,该算法方案在BWDSP编译器上的实现能够平均取得5.66的加速比。 展开更多
关键词 编译优化 指令级并行 分簇体系数字信号处理器 超长指令字 单指令多数据流 open64编译器
下载PDF
魂芯DSP上复数类型的支持和优化 被引量:2
16
作者 王玉林 郑启龙 赵高义 《计算机系统应用》 2017年第9期40-45,共6页
魂芯DSP是一款采用VLIW和SIMD架构的针对高性能计算领域而设计的32bit静态标量数字信号处理器.为了满足数字高性能计算的性能要求,魂芯DSP提供了丰富的复数指令,而编译器不能直接利用这些复数指令来提升编译性能.因此针对魂芯DSP芯片提... 魂芯DSP是一款采用VLIW和SIMD架构的针对高性能计算领域而设计的32bit静态标量数字信号处理器.为了满足数字高性能计算的性能要求,魂芯DSP提供了丰富的复数指令,而编译器不能直接利用这些复数指令来提升编译性能.因此针对魂芯DSP芯片提供了大量的复数类操作指令的特点,在传统开源编译器Open64的编译框架基础上进行研究,实现了复数作为编译器基础类型和复数运算操作的支持.同时,通过识别特定的复数类操作的模式利用魂芯DSP上的复数类指令对程序编译优化.实验结果表明,该实现方案在魂芯DSP编译器上对复数程序优化后能够取得平均5.28的加速比. 展开更多
关键词 编译优化 分簇体系DSP 复数指令 open64编译器
下载PDF
魂芯分簇VLIW DSP上指令调度的优化 被引量:2
17
作者 王玉林 郑启龙 《微型机与应用》 2017年第11期23-26,30,共5页
魂芯DSP处理器是一款32 bit静态超标量、分簇结构的、支持SIMD的VLIW处理器。魂芯DSP芯片有4个执行簇和3个内存块,但簇间数据传输和寻址会占用总线带宽。魂芯DSP上每个簇中有大量的计算部件,但是现有的编译器框架中指令调度算法是针对... 魂芯DSP处理器是一款32 bit静态超标量、分簇结构的、支持SIMD的VLIW处理器。魂芯DSP芯片有4个执行簇和3个内存块,但簇间数据传输和寻址会占用总线带宽。魂芯DSP上每个簇中有大量的计算部件,但是现有的编译器框架中指令调度算法是针对非分簇结构的,无法充分利用魂芯DSP的分簇结构特点,产生出高效的指令级并行代码。根据魂芯处理器架构分簇的特点,提出了在魂芯DSP上进行指令分簇和指令调度的启发式算法,并且在开源Open64编译器框架上进行了实现。实验结果表明,该算法在魂芯DSP编译器上的实现可以显著提高一些在DSP上有着计算密集型程序的性能。 展开更多
关键词 分簇体系DSP 指令级并行 指令分簇 指令调度 open64编译器
下载PDF
上一页 1 下一页 到第
使用帮助 返回顶部