基于机器学习的硬件数据分析系统的实现

2019-07-19 02:08李明东房爱东
通化师范学院学报 2019年8期
关键词:排序性能模块

李明东,房爱东,卢 彪,姜 飞

现代处理器一般只内置了少数的性能计数器,但是实际使用时往往需要捕捉大量的微体系结构硬件事件.本文借助性能计数器及性能监测工具,对大量硬件事件的表现进行语义分析,寻找事件模式,从而有效地度量和理解云平台上的性能大数据.此外,结合机器学习理论,研究基于机器学习的方法对时间进行重要性的量化,用迭代排序的方法不断约简事件空间[1].通过对比硬件事件之间的相关性,探测硬件数据分析系统内部各组件潜在的相互联系.

1 硬件数据分析系统构架

硬件数据分析系统是性能计数单元收集的性能信息的数据挖掘工具.图1给出了硬件数据分析系统的系统框架,主要由三部分组成:数据集成模块、重要排序模块和阶段关闭排序模块,具体硬件数据分析框架结构关系图如图1所示.

图1 硬件数据分析框架

在大数据计算框架中,数据负载运行时,硬件数据分析系统使用perf_event[2]工具批量监控性能计算单元中的性能事件,生成原始时间数据.数据集成模块对这些源数据进行数据集成.集成后的数据发送至重要性排序模块,然后利用该模块基于机器学习特征对影响程序运行的因素进行量化和排序.

1.1 系统环境配置

实验环境为3台Linux服务器,其中一台命名为master,其余服务器为slave服务器.

1.2 系统数据整合

定义硬件事件集合M0为用户操作人员,并且开始进行M次实验,实验开始到实验结束,设置T为在每个实验中的时间参数,用户根据自己的需求选择部分实验Si进行监测.定义Si中包含的硬件发生事件数量为EI=card(Si).则用户选择监测空间为S=(S1∪S2∪S3∪S4…).

图2 进程通讯序列变化图

每个实验中,加载程序的运行时长为随机值,上下波动在一定的值上.图2显示了K均值聚类算法以及Hadoop中的Wordcount两个系统程序在相同条件中运行时间的变化.由图2可得K均值聚类算法平均运行时间为265.42 s,而Wordcount的平均运行时间为195.92 s.每次实验中进程间通讯序列变化值不相同但趋势一致,即每个用户选择监视事件存在相同部分.这些部分会导致数据错位.因此,n次测试中获取数据需要重新整合.

图3 重叠事件状态图

图3为3个独立实验生成的数据,水平为事件集合,竖直为时间数据的长度,反映了重叠事件的典型情况.从上述检测结果中得知,标号为1的部分代表硬件事件S1产生的时间序列,标号为2的部分表示硬件事件S2生成的时间序列.

2 硬件数据空间优化

2.1 基于梯度提升回归树算法的化简

硬件数据分析系统选择一个进程间通讯阴影事件[3]的最大子集进行排序.将此过程与特征工程问题进行比较,即每个特征工程问题硬件事件被视为一个特性,将进程间的通讯作为目标,组建符合进程间通讯的模型,同时对每个实验特性的重要性进行评测.选取梯度增强回归树模型作为事件选择的基本模型,该模型算法实现的最终结果是生成多棵树,以避免单颗决策树带来的问题.

重要排序模型是为了分析事件的重要程度,量化硬件程序影响最大的因素,同时构建以进程间通讯为目标的机器学习模型.将程序运行的序列值输入可以用公式(1)表示.

其中,IPC是负载程序运行期间以1 s为采样频率采集到的每时钟周期机器指令数,si表示的是第i个硬件事件,n是硬件事件的数目.

梯度提升回归树算法是任何可微损失函数[4]的典型优化模型,提升树模型可以表示为基于决策树的相加模型,决策树是树的线性.梯度提升回归树算法支持各种不同的回归损失函数.默认回归损失函数为最小二乘损失函数,其计算公式如公式(2)所示.

其中x为真值,f(y)为模型预测值.

对于积分模型中的单个回归树T,使用来衡量每个参数变量s对目标变量的影

i响程度的测量.将()T理解为选取si被选中作为树的节点进行分裂的次数,再根据对分裂结果的影响程度的平方来加权,具体计算如公式(3)所示.

其中nt为si被选中作为树的节点进行分裂的次数,p2(k)是第k次分裂后对树模型的性能提升的平方值.通常情况下,设p()k为相对IPC误差值.那么对全部回归树本身来说,si的重要性可以表示为公式(4)所示.

其中R为组合模型中的树的数量,( )Tm为第m棵中si对进程间通讯的影响程度的大小.

2.2 系统硬件重要性计算

在模型训练性能阶段,IBTM构建了事件和Spark参数的混合量,如公式(5)所示.其中xi为事件集,pi为Spark参数.将混合量放入机器学习模型中进行训练,执行时间作为模型的目标变量[5].混合参数EX()p的计算公式如下:

在模型训练期间,Spark参数pi与xi在相关事件和参数对中具有相关性,此参数可作为优化后的参数.

3 硬件数据相关性分析

多数时间事件的测量是基于特征工程[6].在特征工程过程中进行数据转换后,更高效地反映时间事件特征,减小空间测量复杂度.因此在硬件数据分析系统中,经过重要排序组件筛选之后,得到最优先事件子集.使用DTW法计算两个事件关联性,得到DTW距离进行排序结果如图4所示.

图4 事件子集排序图

3.1 时间序列相关程度计算

对每一个重要的事件构建树性回归模型[7].取两个事件的时间序列值,并且将模型中其余事件的值设置为其相应的平均值.重复执行此过程,同时记录模型剩余r.r的计算公式如公式(6)所示.

其中,模型估计值为pi,混合参数值为EX(p),n为样本数.

图5 硬件事件关联图

图5给出了4个基准下硬件事件间关联强度的结果[8].其中,Y轴表示相关性,X轴是两个事件名.选择的3大硬件事件重要性排名如上所述,产生3×9=27套硬件事件对.由于排序结束时硬件事件对的相关度为0,所以统一选择前10对,这10对包含强度不为0的所有硬件事件.

3.2 基于距离模型的相关性度量算法实现

欧式距离通过时间序列提取新的特征,使得不同长度的两条时间序列拥有等长的特征向量.通过距离度量的方式计算距离在数值上的相关性,在算法实现上,利用一系列事件构造线性回归模型,计算对线性模型的差值结果作为事件间的相关性强度.采用线性模型在训练时,选取诸多事件中的值相对均衡的序列,并设定对应事件的值作为其对应的均值,模型残差m由公式(7)计算得出.

其中,ki表示模型预测值,k表示为观测值,n为样本总数.

对上述模型计算的结果,还需要后期的归一化处理,之后可以从归一化的结果中,更加直观的得出时间相关性中相关程度的大小关系.

4 总结

本文实现了基于机器学习的硬件数据分析系统,充分利用数据集成模块、重要排序模块、阶段关闭排序模块构建基于机器学习的硬件数据分析系统框架,并对硬件事件进行量化和排序.其次,利用硬件数据分析系统对进程进行排序,对排序的结果进行模块化集成处理,从而得到硬件事件的重要程度,帮助用户理解复杂情况下的硬件事件结果.本系统迭代地使用回归树算法构建的性能模型,对分析云环境下负载程序的性能事件重要性和事件间的相关性具有指导意义.接下来的工作可从数据集的角度分析性能数据,挖掘出更多信息.

猜你喜欢
排序性能模块
28通道收发处理模块设计
“选修3—3”模块的复习备考
保暖袜透湿性能测定的不确定度分析
作者简介
恐怖排序
提供将近80 Gbps的带宽性能 DisplayPort 2.0正式发布
节日排序
Al-Se双元置换的基于LGPS的thio-LISICON的制备与性能表征
RDX/POLY(BAMO-AMMO)基发射药的热分解与燃烧性能
集成水空中冷器的进气模块