[发明专利]基于高性能平台的并行程序性能数据采集方法及装置有效
申请号: | 201310005536.8 | 申请日: | 2013-01-07 |
公开(公告)号: | CN103077080A | 公开(公告)日: | 2013-05-01 |
发明(设计)人: | 翟琰;翟季冬;陈力维;陈文光 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 张大威 |
地址: | 100084 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 性能 平台 并行 程序 数据 采集 方法 装置 | ||
技术领域
本发明涉及高性能计算技术及分析领域,特别涉及一种基于高性能平台的并行程序性能数据采集方法及装置。
背景技术
高性能计算一直是进行现代科学研究的重要支柱,例如,人类基因、地球气候准确预报与模拟、核爆炸模拟等等,都与并行计算技术紧紧联系在一起。但这些程序往往存在各种各样的性能问题,这类问题对于高性能计算的影响很大,表现在如下几个方面:
1、性能瓶颈会影响高性能程序的扩展性,从而导致可计算的问题规模被制约。对于高性能计算领域的主要应用,例如,核物理、天气预报,在问题规模提升时对内存容量和带宽的需求也会迅速提升,而现代的高性能计算机同时提供高内存容量和带宽的手段就是增加并行计算的核心数量。因此,当扩展性不好时,应用程序将无法对大规模的问题进行求解,从而降低其科学意义。
2、性能问题会导致程序运行的时间增长。目前高性能计算用户主要通过在超级计算中心按每计算核心每小时的标准来购买机时,这种运行时间的增长会导致用户在运行大规模程序时的开支和使用的计算核心数量成正比,造成重大的经济损失。
性能分析工具主要包括两部分,性能数据的采集与性能数据的分析。对于高性能程序而言,性能数据的采集存在如下关键问题:
1、性能数据的采集粒度与引入的额外性能开销的矛盾。一般来说,性能数据的采集粒度越细,之后所能进行的分析就越准确。细粒度地数据采集会给程序的执行带来额外的开销,可能会干扰程序本身的性能特征。高性能计算程序往往需要使用数千甚至上万颗CPU核心进行运算。但在这种规模的计算中,干扰会得到放大和传播,从而导致得出错误的热点分析报告。将性能工具引入的性能开销降低到可忽视的程度,对于高性能计算的性能分析工具至关重要。
2、性能数据的采集粒度与性能数据大小的矛盾。同样,当性能数据采集粒度过细时,数据量可能会变得较大,不加以控制甚至可以达到数TB的级别,除了加重了系统的输入输出(Input/Output,即I/O)负担,降低了系统的稳定性外,大量的数据还会影响实际分析的效果。如何限制性能数据的大小,也是不可忽视的问题。
3、国产计算平台特有的问题,如性能采集相关的硬件设备支持相对较弱,性能事件计数器少于常用分析方法所需要的数量等问题。
目前主要的采集方法是通过插装(instrumentation)或者采样(sampling)的手段进行。插装方法是通过编译或者链接手段在生成可执行文件时插入性能采集的代码,其优点是确定性,易对应到源码,不会丢失性能数据,但是开销和性能数据的量往往巨大。采样方法是通过定时器和硬件性能采集设备,定时采集性能数据,如果采集频率设置合理,则性能开销相对较小,但对应到源程序较为困难,且实现时存在多种问题。
发明内容
本发明的目的旨在至少解决上述的技术缺陷之一。
为达到上述目的,本发明一方面的实施例提出一种基于高性能平台的并行程序性能数据采集方法,包括以下步骤:S101:设置控制参数;S102:运行待采集的程序;S103:获取当前运行的所述程序的函数调用上下文;S104:如果获取所述程序的函数调用上下文失败,则构建所述程序的函数调用上下文;S105:通信插装模块对所述程序进行插装,采集所述程序的通信性能数据,并对应到触发插装的程序函数调用上下文;S106:中断所述程序的运行;S107:通过计算采样模块对所述程序进行采样,采集所述程序的计算性能数据,并对应到采样捕获的程序函数调用上下文;S108:恢复所述程序的运行;S109:重复S105至S108步骤直到全部所述通信性能数据和所述计算性能数据采集完毕;S110:对所述通信性能数据和所述计算性能数据进行整理并输出。
根据本发明实施例的方法,通过合理的采样和插装混合的方式,避免采集开销与通信性能数据和计算性能数据量过大,同时采用随机轮换的方法解决了平台硬件不足的问题。
在本发明的一个实施例中,所述控制参数包括:采样频率、缓冲区大小、采集事件列表。
在本发明的一个实施例中,所述通信性能数据包括:通信时间、通信频度、通信消息量。
在本发明的一个实施例中,所述通信插装模块还用于构建通信拓扑。
在本发明的一个实施例中,所述计算性能数据包括:计算时间、硬件性能读数。
在本发明的一个实施例中,所述通信插装模块对所述程序进行插装,包括:所述通信插装模块在所述程序的预定插装位置上插装入采集代码;当所述程序运行到所述预定插装位置时,采集所述程序的计算性能数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310005536.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种汽车智能进入系统的车门把手感应装置
- 下一篇:太阳能电池板用削边装置