论文部分内容阅读
大数据计算是在一定的时间约束下完成大规模数据处理的计算。在应用形态上,大数据计算以数据为中心,数据的多样性、对于数据处理的时间约束的多样性、应用领域的多样性决定了大数据应用的多样性;在系统实现上为了简化编程,高级语言、算法库、软件包被大量使用,使得软件栈在整个大数据系统栈中占有更大的比重。这些新特征给系统与体系结构的研究带来了新的问题边界。对大数据系统进行量化分析可以使计算机系统进行有的放矢的设计和优化,而基准测试程序集(Benchmark Suite)作为一个基本工具为可以为量化分析提供相应的支撑。 由于大数据计算涉及到的数据多样性、应用多样性和软件栈多样性,大数据基准测试程序集的构造具有极大的挑战性,而当前的大数据基准测试的研究处于起步阶段,没有公认的标准,缺乏能反映大数据多样性的综合大数据基准测试程序集。本文以大数据基准测试程序构建为基础进行大数据系统的量化分析研究。首先,本文构建综合的大数据基准测试程序集,并在此基础上分析大数据计算的负载特征。然后,基于负载特征分析的结论,本文提出适合大数据负载的量化性能指标BOPS(Basic Operations PerSecond)。最后,本文建立基于BOPS的大数据屋顶模型,作为一个新的大数据系统性能模型。 本文的主要贡献可以总结为: (1)构造了系统和体系结构领域的综合大数据基准测试程序集BigDataBench。BigDataBench涵盖了5个典型大数据处理领域,包括14个真实数据集,33个典型负载,4种软件栈实现和77个实现程序。目前BigDataBench已在工业界和学术界获得一定程度的应用,在系统、体系结构、数据管理和高性能计算领域的国际顶级会议上均有使用BigDataBench或引用BigDataBench的工作。中国信息通信研究院在BigDataBench的基础上牵头制定了国内首个大数据性能测试行业标准。 (2)对大数据负载进行了系统的量化分析,通过与其他基准测试程序HPCC、PARSEC、SPECCPU对比,发现大数据负载普遍计算密度较低(在典型的Intel Xeon平台,与HPCC、PARSEC、SPECFP相比,大数据负载浮点计算密度要低一个数量级),是具有更多分支指令的数据移动为主的计算(在典型的Intel Xeon平台,数据移动相关指令与分支指令的总和占总指令的87%,而在HPCC、PARSEC、SPECFP中仅平均浮点计算指令即为总指令的32%);另一方面,经过负载分析,证明大数据负载具有计算类型的多样性,对于处理器系统的设计和优化不存在“one size fitsall”的解决方案;同时,软件栈对大数据系统行为具有显著的影响,使用不同软件栈实现的相同应用在负载特征上存在显著差异性(在典型的Intel Xeon平台,相同应用的不同软件栈实现负载仅L1I Cache失效率会存在一个数量级的差别)。 (3)针对大数据负载普遍计算密度较低是具有更多分支指令的数据移动为主的计算特征,提出了大数据计算的系统层性能指标BOPS(Basic Operations Per Second),即每秒完成基本操作(Basic Operations,BOPs)的次数。基本操作BOPs包括了浮点和整型的计算、比较、地址操作,BOPs中定义的基本操作与数据移动(地址操作)、分支(比较操作)和计算(计算操作)形成映射,从而全面反映大数据的计算特征。在BOPS定义基础上构造了BOPS对应的微基准测试程序集合(MicroBenchrnarkSuite)。实验结果表明BOPS及其微基准测试程序集可以有效地评估大数据系统的性能、运行效率以及不同系统间的性能差异,是一个适合于大数据系统评测的系统层量化性能指标。 (4)针对大数据的计算特征,提出了用于大数据性能评测的大数据屋顶模型。在传统基于FLOPS的屋顶模型(Roofline Model)基础上,引入BOPS指标作为计算性能的参考依据,设计和实现了大数据屋顶模型。实验结果表明大数据屋顶模型可以直观的反映大数据系统的计算行为并指导大数据系统的优化。