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个阶段检
测期,
Pj表示第j个阶段检测期;
Pi和
Pj之间的程序运行区间即为帮助线程运行的参数值应
用期;在阶段检测期
Pi和
Pj内,关闭帮助线程预取操作,并采集n个采样间隔内的CPI数据,最
后计算CPI均值来表征检测期
Pi内的程序阶段特征;当
时,称程序运行阶段发
生变化。
5.根据权利要求1所述的方法,其特征在于:所述步骤3)中,预取获益指标如下:
预取获益指标为
,
,其中
Pi表示第i个检测阶段;
表示阶段
Pi在关闭预取状态下的CPI采样均值,
表示阶段
Pi在开启预取状态下的CPI采样均值,二者之差用于判定预
取是否获益;在阶段
Pi内采集n个执行样本的CPI数据,最后计算CPI均值来表征阶段
Pi内主
线程的性能情况,
时,表示在帮助线程预取的作用下主线程取得了性能提升,即预
取是正获益;当
时,表示在帮助线程预取的作用下使得主线程性能下降,即预取是
负获益。
6.根据权利要求1所述的方法,其特征在于:所述步骤4)自适应调节步骤包括下述步
骤:
A、检测帮助线程预取获益情况;
B、若帮助线程预取反馈信息为负获益,则根据当前热点函数执行进度判断是否进入帮
助线程预取参数值自学习阶段,若热点函数剩余执行时间不足于完成参数值的学习时,则
直接关闭帮助线程预取,否则进入参数自适应学习阶段;
C、若帮助线程预取为正获益时,进行程序执行阶段检测;
D、若程序执行阶段未变化,则仍然保持当前预取控制参数值;
E、若程序执行阶段发生了变化,则根据当前热点模块剩余执行进度决定是否进入预取
参数值的学习阶段。