自动并行化多级并行代价评估方法技术

技术编号:9033886 阅读:143 留言:0更新日期:2013-08-15 00:45
本发明专利技术涉及计算机高性能计算技术领域,特别涉及一种自动并行化多级并行代价评估方法,首先进行粗粒度自动并行化代价评估,其次进行中粒度自动并行化代价评估,最后进行细粒度自动并行化代价评估,然后进行综合代价评估,针对共享存储的DOALL并行、流水并行和DSWP并行三种并行模型,构建对应的评估方法,DOALL并行代价分析将静态分析和动态分析相结合获取代价分析信息,向量化代价由各条语句对应的执行代价叠加而成。本发明专利技术提供语句迭代次数和语句单次执行代价的计算方法,并设定经验值确定循环迭代次数,能够较完备的实现对多级并行模式的后端生成代码的精确并行化收益评估,且有效保证目标并行程序的加速效果。

【技术实现步骤摘要】

本专利技术涉及计算机高性能计算
,特别涉及一种。
技术介绍
随着人们对计算能力要求的提高,高性能计算系统的规模也越来越大,速度越来越快,高性能计算水平已经成为体现一个国家科技实力的重要因素,随着高性能计算系统规模的扩大,并行化编译系统在其中扮演越来越重要的角色。代价模型是编译器中用来评估应用程序运行时间的模块,反映计算机硬件和软件的性能特征,代价模型在编译器中处于极其重要的地位,是实施各种编译优化、提高程序效率的基础和依据,代价模型的完善程度直接影响程序优化后的性能。构建一个充 分考虑计算机系统特征和程序特点的代价模型是充满吸引力和挑战性的课题,并行代价评估是当前并行化编译系统研究中不可或缺的一部分,一个程序是否有并行化空间,并行化之后的效果如何,这都需要一套较完备的评估方法来完成。
技术实现思路
为克服现有技术中的不足,本专利技术提供一种较完备的、能够实现对多级并行模式的后端生成代码的精确并行化收益评估,且有效保证目标并行程序的加速效果的。按照本专利技术所提供的设计方案,一种,包含如下步骤:步骤1、粗粒度自动并行化代价评估,面向分布存储结构的消息通信自动并行化进行代价收益分析,即MPI收益代价评估,包含如下步骤:1.1、基于计算数组的并行代价预评估,包含内容如下:步骤1.1.1、首先对源程序分析获得包含有数组生命周期的定义-引用图G (V,E);步骤1.1.2、根据定义-引用图G (V,E),计算源程序中任一数组的主导值;设数组X,源程序中数组χ的定义次数为i,对其定义-引用图添加数组生命周期标志将其划分成若干子图G1、G2……Gi ;在任意子图Gm中,设定义循环为IV共有j次引用,其中任一引用循环为Vnm,数组χ的数据集合&表示数组χ从ν向上暴露于u的数组区域,数组χ的数据集合exposefv_]:j^定义_引用边丸的权重,ψ (χ, ν)是数组χ在循环ν中的外层无关索引的迭代总数,则数组的主导值表示为:权利要求1.一种,其特征在于:包含如下步骤: 步骤1、粗粒度自动并行化代价评估,面向分布存储结构的消息通信自动并行化进行代价收益分析,即MPI收益代价评估; 步骤2、中粒度自动并行化代价评估,面向共享存储结构的自动并行化进行代价收益分析,即OpenMP收益代价评估; 步骤3、细粒度自动并行化代价评估,面向短向量运算部件的自动向量化进行代价收益分析,即SMD收益代价评估; 步骤4、对上述三种粒度的并行收益进行综合,得到总的并行收益。2.根据权利要求1所述的,其特征在于:所述 步骤I还包含包含如下步骤: 步骤1.1、基于计算数组的并行代价预评估,包含内容如下: 步骤1.1.1、首先对源程序分析获得包含有数组生命周期的定义-引用图G (V,E); 步骤1.1.2、根据定义-引用图G (V,E),计算源程序中任一数组的主导值; 设数组X,源程序中数组X的定义次数为i,对其定义-引用图添加数组生命周期标志将其划分成若干子图G1、G2……Gi ; 在任意子图Gm中,设定义循环为um,共有j次引用,其中任一引用循环为vmn,数组X的数据集合d/WM/v,,.../:;;;表示数组X从V向上暴露于u的数组区域,数组X的数据集合exPose[vnJ:J该定义-引用边~, ,^印0^/^,/^的权重,ψ (χ,ν)是数组χ在循环ν中的外层无关索引的迭代总数,则数组的主导值表示为:3.根据权利要求1所述的,其特征在于:所述步骤2包含如下步骤: 步骤2.1、针对共享存储中的DOALL并行、流水并行和DSWP并行三种不同的并行模型,构建相互对应的代价评估方法,对应DOALL并行、流水并行和DSWP并行三种并行模型的评估方法分别为: a)DOALL并行代价分析,编译时的静态分析方式、以及通过预编译与程序员交互的动态方式,将这两种方式相结合进行代价分析; b)D0ACR0SS并行代价分析,包含流水线中最后一个线程开始执行之前的循环执行开销,即流水填充阶段的开销,最后一个线程的执行开销,即满负载阶段的开销; c)PS-DSffP并行代价分析,对S-S型、S-P型、P-S型三种类型分别分析其代价; 步骤2.2、调用硬件模型中的处理器(Processor。)、Cache (Cache。)和TLB(TLBe)三个子模型,获得具体的开销; 步骤2.3、根据获得的具体开销值,评估并行收益,根据收益情况判断是否并行化执行。4.根据权利要求1所述的,其特征在于:所述步骤3包含如下步骤: 步骤3.1、计算每条语句的迭代次数,计算公式为=\)/Τ.,其中D表示语句的迭代次数,假设某条语句在一个D层迭代空间中,S」为迭代层j的初始值,为结束值,Tj是步长; 步骤3.2、计算每条语句的单次执行代价,分析每条语句的中间树结构,每个树节点都对应一个操作,每个操作对应一条指令,每条指令的时延对应到树节点的代价,计算每条语句的执行代价; 步骤3.3、每条语句执行代价为本语句的单次执行代价与迭代次数之积,向量化总代价用C来表示,循环中可向量化语句条数为m,不可向量化语句条数为n,第i条标量语句迭代次数为Di,第j条向量化语句迭代次数为Dp它们对应的执行代价分别记为CSi和C',则5.根据权利要求4中所述的,其特征在于:所述步骤3.1中还包含当循环的迭代次数难以确定时,设定经验值为语句的迭代次数,同时保证内层循环中语句的迭代次数大于等于外层循环中的语句迭代次数。6.根据权利要求4或5任一项权利要求所述的,其特征在于:所述步骤3.2还包括根据语句向量化程度,分别计算语句执行代价,情况如下: 步骤3.2.1、当语句能够完全向量化时,用向量化语句的执行时延与向量化因子的商来表示向量化语句代价,其中CS代表标量语句进行单次执行的代价,CV向量化语句进行单次执行的代价,若该语句原子操作个数为s,第j个操作的指令时延为LINSTj, VF为向量化因子,表示为:全文摘要本专利技术涉及计算机高性能计算
,特别涉及一种,首先进行粗粒度自动并行化代价评估,其次进行中粒度自动并行化代价评估,最后进行细粒度自动并行化代价评估,然后进行综合代价评估,针对共享存储的DOALL并行、流水并行和DSWP并行三种并行模型,构建对应的评估方法,DOALL并行代价分析将静态分析和动态分析相结合获取代价分析信息,向量化代价由各条语句对应的执行代价叠加而成。本专利技术提供语句迭代次数和语句单次执行代价的计算方法,并设定经验值确定循环迭代次数,能够较完备的实现对多级并行模式的后端生成代码的精确并行化收益评估,且有效保证目标并行程序的加速效果。文档编号G06F9/45GK103246541SQ201310153710公开日2013年8月14日 申请日期2013年4月27日 优先权日2013年4月27日专利技术者赵荣彩, 庞建民, 韩林, 徐金龙, 傅立国 申请人:中国人民解放军信息工程大学本文档来自技高网
...

【技术保护点】
一种自动并行化多级并行代价评估方法,其特征在于:包含如下步骤:步骤1、粗粒度自动并行化代价评估,面向分布存储结构的消息通信自动并行化进行代价收益分析,即MPI收益代价评估;步骤2、中粒度自动并行化代价评估,面向共享存储结构的自动并行化进行代价收益分析,即OpenMP收益代价评估;步骤3、细粒度自动并行化代价评估,面向短向量运算部件的自动向量化进行代价收益分析,即SIMD收益代价评估;步骤4、对上述三种粒度的并行收益进行综合,得到总的并行收益。

【技术特征摘要】

【专利技术属性】
技术研发人员:赵荣彩庞建民韩林徐金龙傅立国
申请(专利权)人:中国人民解放军信息工程大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1