一种自适应的帮助线程预取质量控制方法技术

技术编号:13685181 阅读:52 留言:0更新日期:2016-09-08 21:38
本发明专利技术公开了一种自适应的帮助线程预取质量控制方法,属于多核缓存性能优化技术领域,可用于改进和提升非规则数据密集应用中帮助线程预取的质量。针对帮助线程预取控制参数,通过引入动态采样、程序运行阶段检测、预取获益反馈、自适应调节等技术,实现帮助线程预取控制参数值的实时在线自适应调节,以提高帮助线程预取的控制质量。本方法主要包括如下步骤:1)动态信息采集和反馈统计;2)指标计算3)自适应预取控制。本发明专利技术方法充分利用多核平台的硬件信息实现帮助线程的实时在线预取控制,可广泛应用于当前大数据环境下非规则数据密集型应用的访存性能优化、帮助线程预质量控制和共享缓存污染控制等方面。

【技术实现步骤摘要】

本专利技术涉及多核计算机共享缓存性能优化领域,具体涉及一种控制帮助线程预取质量的自适应调节方法,可用于提升非规则数据密集型应用程序的性能。
技术介绍
当前数据密集应用涉及大数据分析、社会网络、科学计算等领域,这类应用往往呈现出非规则数据密集访问特征,这使得传统基于时空局部性的数据预取技术失效。为提高该类应用的程序性能,帮助线程预取技术受到了广泛关注。帮助线程预取技术的实质是一种Leader/Follower结构,是一种非传统并行技术。在多核计算平台上,帮助线程预取的目的地是平台的最后一级共享缓存。其主要思想是利用一个空闲核Core1运行一个帮助线程(精简版本的主线程)来帮助运行在核Core0上的主线程进行数据预取,帮助线程在数据流和控制流上都不会对主线程造成干扰,只起到数据预取的作用。由于构造帮助线程时剔除了主线程中的计算任务,只剩下了访存任务和必要的控制流, 因而它可以和主线程在计算和访存上解偶,主线程负责计算,帮助线程负责访存,从而有效地隐藏访存延迟达到提升程序性能的目的。最近大多研究均采用参数值来控制帮助线程的预取质量,如国外学者在2009年《IEEE Transactions on Parallel and Distributed Systems》 杂志上发表的 《Prefetching with Helper Threads for Loosely Coupled Multiprocessor Systems》文章中提出了一种基于“PV”信号的帮助线程控制方法,通过在主线程和帮助线程中分别维护一个同步计数器(Loop_SYNC_Interval),主线程在每个同步间隔内,执行“V”操作,表示主线程已经消费掉一个块的数据。在帮助线程到达同步间隔后,首先判断主线程消耗的数据块的数量是不是超过了一个阈值(MAX_DIST)。如果超过阈值,那么表明帮助线程落后主线程,帮助线程需要做的操作是同步当前变量,追上主线程,并重新初始化阈值;如果没有超过阈值,那么帮助线程简单的执行“P”操作,表示此时帮助线程仍然快于主线程。国内学者北京理工大学的古志民教授研究组,针对“PV”方法存在的问题,提出一种针对小计算量下非规则数据密集型热函数的性能优化方法,该方法引入三个控制参数预取距离K、预取块大小P和同步距离B来控制帮助线程的预取。以上研究中,帮助线程控制参数值的选择和优化都是采用静态枚举获得。当应用程序执行的环境或程序输入集变化时,原来的控制参数值就会失效,需要重新通过静态枚举来优选控制参数值,这将是一个繁杂耗时的过程。因此,静态选择帮助线程控制参数值的方法主要存在两方面的问题:一方面在参数值选择和优化时所花费的时间代价过高,另一方面离线设置参数值的方法不能够适应程序的动态阶段访存行为的变化。这些问题给帮助线程预取技术的应用和推广带来极大的限制。针对这些问题,本专利技术提出一种帮助线程预取控制的自适应调节方法,以解决传统手工枚举选择参数值的难题。
技术实现思路
本专利技术的目的在于解决上述技术难题,提出了一种自适应的帮助线程预取质量控制方法,其特征在于通过多核处理器的硬件性能计数器(Performance Monitor Unit)部件实时、在线监测帮助线程的预取性能,根据应用程序的动态阶段行为和预取获益信息可实现对帮助线程的控制参数值进行自适应调整和优化。本专利技术主要通过下列技术方案来实现。为便于阐述本专利技术方法涉及的具体实现步骤,首先给出本专利技术相关的技术术语的定义。 定义1 热点模块M:对于应用程序A中的任意模块M,存在阈值和分别满足和,则称M为热点模块。其中,Cycle(X)和LLC_Miss(X)分别表示利用Profiling工具对程序X进行性能剖析所获得的程序运行时钟数和LLC缺失数。定义2 程序阶段(Phase):假设应用程序A动态运行过程中的一个执行区间P,在这个执行区间P内应用程序的某个性能指标(如,CPI,分支预测等)保持相对稳定,那么这个执行区间P为一个程序阶段。 本专利技术方法的基本思想是利用动态采样技术,通过收集多核平台的硬件计数器(PMU)信息,然后计算相关指标来判定定义1所示的程序热点模块中的阶段(定义2)行为变化和预取质量的获益反馈信息,最后根据反馈信息做出帮助线程的预取控制决策。程序热点模块M的执行时间在逻辑上被分为周而复始循环运行的3个区间:即帮助线程预取动态反馈决策期;帮助线程预取参数训练期;帮助线程预取参数应用期。本专利技术所述方法的整体框架流程如图1所示,其特征在于如下步骤 。1)开始:程序初始化相关采样引擎,进入热点模块,如果程序退出了热点模块,则转结束。2)程序热点函数运行阶段和预取质量反馈信息统计。3)程序阶段行为指标计算和预取质量获益指标计算。4)帮助线程预取质量控制的动态决策。5)结束:退出该方法。作为对本专利技术的自适应的帮助线程预取质量控制方法的进一步改进:步骤2)中的动态反馈信息主要通过多核平台的硬件性能计数器PMU进行统计,所采集的性能事件主要包括CPU_UNHALTED_CLOCKS事件和INSTRUCTIONS_RETIRED事件。作为对本专利技术的自适应的帮助线程预取质量控制方法的进一步改进:本方法所述的动态反馈信息采集主要通过采样技术来实现,通过在利用现代处理器所提供的精确事件采样机制(Precise Event Based Sampling, PEBS),通过设置PMU计数器的采样事件间隔周期P,每当P个事件发生后,CPU将其性能事件状态存在性能计数器中,并产生中断信号,然后在信号中断处理程序中可以对性能事件计数器读取、处理等操作。作为对本专利技术的自适应的帮助线程预取质量控制方法的进一步改进:步骤3)中阶段检测指标为,,其中Pi表示第i个阶段检测期,Pj表示第j个阶段检测期。Pi和Pj之间的程序运行区间即为帮助线程运行的参数值应用期。在阶段检测期Pi和Pj内,关闭帮助线程预取操作,并采集n个采样间隔内的CPI数据,最后计算CPI均值来表征检测期Pi内的程序阶段特征。当时,称程序运行阶段发生变化。作为对本专利技术的自适应的帮助线程预取质量控制方法的进一步改进:步骤3)中预取获益指标为,,其中Pi表示第i个检测阶段。表示阶段Pi在关闭预取状态下的CPI采样均值,表示阶段Pi在开启预取状态下的CPI采样均值,二者之差用于判定预取是否获益。在阶段Pi内采集n个执行样本的CPI数据,最后计算CPI均值来表征阶段Pi内主线程的性能情况。时,表示在帮助线程预取的作用下主线程取得了性能提升,即预取是正获益;当时,表示在帮助线程预取的作用下使得主线程性能下降,即预取是负获益。作为对本专利技术的自适应的帮助线程预取质量控制方法的进一步改进:步骤4)中帮助线程预取质量的动态决策主要包括如下步骤:A、检测帮助线程预取获益情况;B、若帮助线程预取反馈信息为负获益,则根据当前热点函数执行进度判断是否进入帮助线程预取参数值自学习阶段,若热点函数剩余执行时间不足于完成参数值学习时,则直接关闭帮助线程预取,否则进入参数自适应学习阶段;C、若帮助线程预取为正获益时,进行程序执行阶段检测;D、若程序执行阶段未变化,则仍然保持当前预取控制参数值;E、若程序执行阶段发生了变化,则根据当前热点模块剩余执行进度决定是本文档来自技高网
...

【技术保护点】
一种自适应的帮助线程预取质量控制方法,其特征在于通过多核处理器的硬件性能计数器(Performance Monitor Unit)部件实时、在线监测帮助线程的预取性能,根据应用程序的动态阶段行为和预取获益信息可实现对帮助线程的控制参数值进行自适应调整和优化,本专利技术方法的步骤如下:1)开始:程序初始化相关采样引擎,进入热点模块,如果程序退出了热点模块,则转结束;2)程序热点函数运行阶段和预取质量反馈信息统计;3)程序阶段行为指标计算和预取质量获益指标计算;4)帮助线程预取质量控制的动态决策;5)结束:退出该方法。

【技术特征摘要】
1.一种自适应的帮助线程预取质量控制方法,其特征在于通过多核处理器的硬件性能计数器(Performance Monitor Unit)部件实时、在线监测帮助线程的预取性能,根据应用程序的动态阶段行为和预取获益信息可实现对帮助线程的控制参数值进行自适应调整和优化,本发明方法的步骤如下:1)开始:程序初始化相关采样引擎,进入热点模块,如果程序退出了热点模块,则转结束;2)程序热点函数运行阶段和预取质量反馈信息统计;3)程序阶段行为指标计算和预取质量获益指标计算;4)帮助线程预取质量控制的动态决策;5)结束:退出该方法。2.根据权利要求1所述的方法,其特征在于:所述步骤2)中的动态反馈信息主要通过多核平台的硬件性能计数器PMU进行统计,所采集的性能事件主要包括CPU_UNHALTED_CLOCKS事件和INSTRUCTIONS_RETIRED事件。3.根据权利要求1所述的方法,其特征在于:所述步骤2)的动态信息反馈采集主要通过采样技术来实现,通过利用现代处理器所提供的精确事件采样机制(Precise Event Based Sampling, PEBS),设置PMU计数器的采样事件间隔周期P,每当P个事件发生后,CPU将其性能事件状态存在性能计数器中,并产生中断信号,然后在信号中断处理程序中可以对性能事件计数器读取、处理等操作。4.根据权利要求1所述的方法,其特征在于:所述步骤3)的阶段检测指标如下:阶段检测指标为,,其中Pi表示第i个阶...

【专利技术属性】
技术研发人员:张建勋卢卫娜王伟武志峰石连栓
申请(专利权)人:天津职业技术师范大学
类型:发明
国别省市:天津;12

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

1