刘晓娴
- 作品数:11 被引量:9H指数:2
- 供职机构:解放军信息工程大学更多>>
- 发文基金:国家科技重大专项国家高技术研究发展计划更多>>
- 相关领域:自动化与计算机技术更多>>
- 基于二次规划模型的非线性下标表达式的依赖测试方法
- 本发明涉及一种分析程序指令之间依赖关系的方法,属于高性能计算中并行化编译优化技术领域,特别是涉及一种基于二次规划模型的非线性下标表达式的依赖测试方法,本发明针对传统依赖测试方法对非线性依赖测试的不足,通过对循环索引边界约...
- 单征庞建民姚远赵捷丁锐刘晓娴
- 面向共享存储结构的并行编译优化技术研究
- 在计算机体系结构的发展过程中,并行结构的出现与不断发展将高性能计算机系统的峰值速度一次又一次推向新的高峰。但与硬件的峰值性能相比,用户程序所能获得的持续性能相去甚远,其中一个主要原因是并行程序设计带来的挑战。程序的自动并...
- 刘晓娴
- 关键词:并行化编译
- 自动并行化中不规则问题的划分方法被引量:1
- 2013年
- 许多大规模计算程序包含了不规则问题。在面向分布存储的自动并行化中,以往的研究在编译时划分不规则问题的循环和数组较难。文章提出了一种划分方法自动为一类常见的不规则问题寻找计算和数据分解,能在编译时通过计算分解分配不规则数组的数据空间,并根据规则数组之间的相关性来减少数组重分布。该方法通过计算分解和数组引用的访问表达式来分配不规则数组访问的数据到各处理器,并通过数组重分布图在循环间寻找一致的分解。实验结果表明了方法的有效性,并对测试用例取得了预期的加速比。
- 丁锐赵荣彩刘晓娴傅立国
- 关键词:自动并行化
- OpenMP数据分布子句自动生成算法
- 2013年
- 将OpenMP程序扩展到异构多核结构时,非本地存储访问会导致访存开销增加,影响程序性能。针对该问题,引入带数组划分信息的数据分布子句,对数据在异构多核存储系统的布局进行管理,提出一种基于并行循环识别和数组引用模式分析的算法,实现该类子句的自动生成。实验结果表明,自动生成的OpenMP程序包含数据分布子句,具有较好的数据局部性,可降低访存开销,在异构多核系统上获得明显的性能提升。
- 黄品丰赵荣彩韩林刘晓娴
- 关键词:异构多核数据局部性
- 面向规则DOACROSS循环的流水并行代码自动生成被引量:3
- 2014年
- 发掘DOACROSS循环中蕴含的并行性,选择合适的策略将其并行执行,对提升程序的并行性能非常重要.流水并行方式是规则DOACROSS循环并行的重要方式.自动生成性能良好的流水并行代码是一项困难的工作,并行编译器对程序自动并行时常常对DOACROSS循环作保守处理,损失了DOACROSS循环包含的并行性,限制了程序的并行性能.针对上述问题,设计了一种选择计算划分循环层和循环分块层的启发式算法,给出了一个基于流水并行代价模型的循环分块大小计算公式,并使用计数信号量进行并行线程之间的同步,实现了基于OpenMP的规则DOACROSS循环流水并行代码的自动生成.通过对有限差分松弛法(finite difference relaxation,简称FDR)的波前(wavefront)循环和时域有限差分法(finite difference time domain,简称FDTD)中典型循环以及程序Poisson,LU和Jacobi的测试,算法自动生成的流水并行代码能够在多核处理器上获得明显的性能提升,使用的流水分块大小计算公式能够较为精确地计算出循环流水并行时的最佳分块大小.自动生成的流水并行代码与基于手工选择的最优分块大小的流水并行代码相比,加速比达到手工选择加速比的89%.
- 刘晓娴赵荣彩赵捷徐金龙
- 全局数组数据流分析技术的研究与实现
- 在分布存储结构的计算机系统中,尽可能地降低处理器间的通信开销、提高并行程序的执行效率是并行化编译必须要考虑的问题。目前的并行化技术主要针对循环级并行,循环中的数组是进行通信优化的主要对象。传统的依赖关系分析只能确定并行程...
- 刘晓娴
- 关键词:并行化编译通信优化数据流分析线性不等式
- 基于二次规划模型的非线性下标表达式的依赖测试方法
- 本发明涉及一种分析程序指令之间依赖关系的方法,属于高性能计算中并行化编译优化技术领域,特别是涉及一种基于二次规划模型的非线性下标表达式的依赖测试方法,本发明针对传统依赖测试方法对非线性依赖测试的不足,通过对循环索引边界约...
- 单征庞建民姚远赵捷丁锐刘晓娴
- 面向DSWP并行的OpenMP任务调度机制的扩展与实现被引量:2
- 2013年
- 多核处理器能够提升多线程程序的性能,但早已存在的诸多单线程程序无法从中获益,程序员也习惯于编写单线程程序。自动并行化技术是将单线程程序移植到多核上的重要手段,但是当循环中存在无法确定的数据依赖或复杂的控制流时,传统的自动并行化技术无法取得良好效果。Ottoni等人针对传统自动并行失败的循环提出了Decoupled Software Pipelining(DSWP)算法用以实现指令级的细粒度并行,但其需要对处理器体系结构的深入了解以及对核间通信队列和专用指令的硬件支持,并行性能和应用广泛性受到限制。基于OpenMP应用编程接口实现的DSWP并行不依赖于硬件上对核间通信队列和专用指令的支持,且不受平台的限制,但现有的OpenMP任务调度机制无法满足DSWP并行中对任务调度的需求。对现有的OpenMP任务调度机制进行扩展,增加了任务与线程绑定的属性,保证了基于OpenMP的DSWP并行程序的正确执行。在GCC的OpenMP运行库libgomp中扩展了任务绑定属性子句的功能,扩展后的GCC作为OpenMP DSWP程序的基础编译器,为自动并行提供支持。通过对基准测试集NPB3.3.1的测试表明,传统自动并行失败的循环,经OpenMP DSWP自动并行后在双核处理器上平均加速比达到1.23以上;使用添加了OpenMP DSWP算法的Open64编译器生成的并行程序,与仅使用传统自动并行方法的Intel编译器和Open64编译器所得程序相比,平均加速比分别高出22%和26%。
- 刘晓娴赵荣彩丁锐
- 关键词:自动并行化OPENMP任务调度机制GCC
- 基于循环分块的流水粒度优化算法被引量:1
- 2013年
- 当计算划分层迭代数目较大,或是循环体单次迭代工作量较大,但可用的并行线程数目较小时,传统的基于循环分块的流水粒度优化方法无法进行处理。为此,提出一种基于循环分块减小流水粒度的方法,并根据流水并行循环的代价模型实现最优流水粒度的求解,设计实现了一个流水计算粒度的优化算法。对有限差分松弛法(FDR)的波前循环和时域有限差分法(FDTD)中典型循环的测试表明,与传统的流水粒度选择方法相比,所提算法能够得到更优的循环分块大小。
- 刘晓娴赵荣彩丁锐李雁冰
- 关键词:自动并行化
- 一种基于OpenMP的DSWP自动并行算法被引量:1
- 2015年
- 多核处理器能够提升多线程程序的性能,但早已存在的诸多单线程程序无法从中获益,程序员也习惯于编写单线程程序。自动并行化技术是将单线程程序移植到多核上的重要手段,但是当循环中存在无法确定的数据依赖或复杂的控制流时,传统的自动并行化技术无法取得良好效果。decoupled software pipelining(DSWP)算法针对传统自动并行失败的循环实现了指令级的细粒度并行,但是需要对处理器体系结构和指令集的深入了解,对其并行性能和应用广泛性带来限制。通过对DSWP算法进行改进,提出了基于Open MP的DSWP自动并行算法。该算法增大了并行粒度,使用Open MP并行应用编程接口实现并行,不再依赖具体的体系结构,实现了DSWP算法的应用扩展。通过对基准测试集NPB3.3.1的测试表明,传统自动并行失败的循环,经文章算法并行后在双核处理器上平均加速比达到1.23以上;使用添加了文章算法的Open64编译器生成的并行程序,与仅使用传统自动并行方法的Intel编译器和Open64编译器所得程序相比,平均加速比分别高出22%和26%。
- 刘晓娴赵荣彩韩林李雁冰
- 关键词:自动并行化OPENMP