[发明专利]基于LLVM的科学计算程序自动性能预测方法有效
申请号: | 201510578801.0 | 申请日: | 2015-09-11 |
公开(公告)号: | CN105183650B | 公开(公告)日: | 2018-03-16 |
发明(设计)人: | 张伟哲;何慧;谢虎成;郝萌;王学惠;韩硕;鲁刚钊 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 哈尔滨市松花江专利商标事务所23109 | 代理人: | 杨立超 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 llvm 科学 计算 程序 自动 性能 预测 方法 | ||
技术领域
本发明科学计算程序自动性能预测方法,属于程序性能预测技术领域。
背景技术
高性能计算是计算机科学的一个重要的分支,而性能则是高性能计算的关键特征。程序的执行时间是用户最关心的性能特征,用户之所以选择使用成百上千个处理器处理程序,必然是需要在有限的时间内得到程序运行结果。因此,预测并行程序在某个平台上执行的时间得到了越来越多的研究,这种技术称为程序性能评测。
性能评测方法可以分为动态分析和静态分析。
所谓动态分析的方法,就是通过小规模预测大规模,即在小的输入规模和并行度下多次测量,将得到的数据绘制在一个坐标图上并进行曲线拟合或是回归分析,最后通过曲线拟合得到的公式,就能够预测更大规模和更大并行度下的运行时间。
但这种方法的问题在于:
操作繁琐:因为需要运行许多小规模,同时同一规模下还需要多次运行取平均值,因此需要耗费大量的时间来搜集数据。而且程序执行时多种因素相互影响,平均值很难趋于稳定。而且还会要求大量的采样数据,于是更加使得预测代价增加。
预测范围小:在选择采样规模的时候,还必须尽量平均分布其间距。若是为了测量1024并行度,而选择的采样规模范围只有[0-128]这样一个小范围所拟合出来的曲线,很难保证在1024规模下是合理的。即使拟合函数在前面一段范围能很好的重合,也不能保证在大规模下也能拟合的很好。这样就限制了预测的应用范围。而且有的程序的并行度是有要求的,不能连续变化,这样,采样的数据点不能做到平均分布。
结果合理性不足:因为整个拟合过程都是从纯数学上分析的,忽略了许多程序内部的依赖,因此也就忽略了需要程序特征。这种分析出来的结果即使精度能够接受,也不能证明对于其他所有情况和实验平台也能够保持同样的精度。
对输入有限制:动态分析的干净的表达式是其优点,同样也是其缺点。首先它需要识别参数,这一步只能由人工标注完成,妨碍了自动化。
静态分析就是基于编译器来分析代码,获取程序的一些特征。LLVM就提供了一种静态分析的方法,即静态分支概率技术,下面会有相应的介绍。但是该方法存在相应的问题:
合理性不足:分支概率只是应用了先验概率和分支指令的类型,实际上并不能代表目标程序。
结果为常数:无论是多大的输入规模和多大的并行度,计算出来的基本块频率为常数,因为使用的先验概率就是常数。然而这并不能满足我们的要求。
发明内容
本发明为了实现科学计算程序的自动化分析,提高静态分析的精确性,同时能够最后给出程序预测的时间,进而提供了一种基于LLVM的科学计算程序自动性能预测方法。
本发明为解决上述技术问题采取的技术方案是:
一种基于LLVM的科学计算程序自动性能预测方法,所述方法的实现过程为:
步骤一、将待预测的源程序转化为LLVM中的中间代码bitcode;
步骤二、分析中间代码bitcode,从而获得识别通讯指令MPI的调用、循环次数、静态分支概率;
步骤三、对所述中间代码bitcode进行混合插桩,分别为:进行通讯指令MPI的通讯量及通讯类型的插桩,循环次数结合静态分支概率获得基本块执行次数进行插桩;
步骤四、对进行混合插桩后的中间代码bitcode进行代码删减,并进行优化处理;
步骤五、运行经优化处理后中间代码bitcode,得到llvmprof.out文件;
步骤六、分析llvmprof.out文件,并结合指令时间预测执行时间。
在步骤二中,分析中间代码bitcode获得循环次数的具体过程为:
根据公式%tc=(%end-%start)/%stride获得循环次数%tc,其中,%end表示循环结束值,%start表示循环起始值,%stride表示循环步进;
%end是真退出的终止指令,认为是比较指令icmp;
%start是在循环外离循环最近的写入循环归纳变量的存储指令;
分析基本块Header中的phi指令,获得含有%start、%stride的指令,从而分析得到%stride值。
通讯指令MPI的通讯量及通讯类型的插桩过程为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510578801.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种自组网自动化测试方法及装置
- 下一篇:一种基于数据匹配的仿真回放方法