Page 351 - 《软件学报》2020年第9期
P. 351

2972                                 Journal of Software  软件学报 Vol.31, No.9,  September 2020

             除了情形(1)中的 ARM 平台上,本文同时在运行不同 Linux 内核版本的 X86 平台上进行对比实验.实验基
         于 Intel 4 核心处理器(Core™ i7-2600K),双线程的 X86 处理平台.跟 ARM 不同的是,由于 4 个核的微架构设计
         相同,本实验主要通过设置不同的时钟频率来体现核的异构性,频率主要包括 3.2G(指定为大核,缩写为 B)和
         1.6G(指定为小核,缩写为 S).该平台运行的内核版本为 Linux kernel 3.13.
             (3) S-Bridge 跟主流异构调度算法的对比
             本文选择 big.LITTLE 平台上主流的 HMP 负载均衡算法作为实例进行 S-Bridge 支持前后的对比实验,分析
         在已经异构适配的调度算法上的效果和影响,同时与 HMP 对比进行 S-Bridge 潜在限制的分析.实验采用与情形
         (1)相同的平台.
             本文主要选择 1B-1S,1B-3S 和 3B-1S 这 3 种平台进行实验.如表 1 所示:在实验中采用的工作负载主要由不
         同特性的单线程(比如相对访存多和相对计算多)程序随机混合组成,在实验平台上同时并发地执行.这些程序
         分别选自 SPEC CPU2006    [31] 和 MiBench [32] 测试套件,SPEC CPU2006 主要针对 X86 平台,而 Mibench 主要针对
         ARM 平台.

                                Table 1  ARM 和 X86 平台工作负载的混合测试程序
                                  表 1   ARM 和 X86 平台的多程序随机混合负载
                       Platform       CPUs                     Benchmarks
                                                       mcf, milc, Xalancbmk, soplex, astar,
                                      1B-1S
                   Intel Core™ i7-2600K              povray, perlbench, bzip2, h264ref, hmmer
                                      1B-3S          mcf, milc, Xalancbmk, soplex, astar, gcc,
                                                    povray, gobmk, bzip2, named, h264ref, hmmer
                                               cjpeg, say, qsort, dijkstra, tiff2bw, lout, bitcnts, crc, sha, patricia,
                   Cubieboard4 CC-A80   1B-1S/3B-1S
                                                 toast, ispell, susan, rawcaudio, basicmath, rihndael, bf, fft
             S-Bridge 的效果,通过工作负载中的所有测试程序在原始调度算法和带有 S-Bridge 的调度算法两种情况下
         的执行时间加速比进行衡量.测试时,为了减少系统线程的影响,一方面尽可能地关闭运行的系统线程;另一方
         面,通过重复执行数百次工作负载,计算负载中每个程序的平均执行时间加速比.测试程序的性能数据主要通过
         PMC 记录硬件性能事件,包括程序运行的指令数、周期数和 LLC 缺失数等.如第 4.3.1 节讨论,由于时钟频率差
         异也是影响 CPU 处理能力差异的因素,实验平台中每个核的频率通过 CPUFreq                      [33] 技术被设置为固定的频率.
         4.2   实验结果与分析
         4.2.1    ARM 平台上 S-Bridge 对于 CFS 调度算法的效果
             如图 4(实验平台为 ARM 1B-1S,大小核的频率分别为 1.608G 和 0.72G,内核版本为 3.4)和图 5 所示(实验平
         台为 ARM 3B-1S,大小核的频率分别为 1.608G 和 0.72G,内核版本为 3.4):当 S-Bridge 使能时,所有程序的平均性
         能提升超过约 68.4%;对于个别执行时间特别短的程序(比如 search_large)达到 100%.
             在程序运行过程中,更加适合在大核上运行的程序由于获得较多在大核上运行的机会而有相对明显的性
         能提升,比如 patricia_l 总体性能提升约 71.4%;而对于更加适合在小核上运行的程序 rijndael_s 性能提升约
         50.5%,而且它本身执行时间也比较短.对于适合在大核上运行的执行时间短的程序比执行时间长的程序效果
         明显,由于伴随部分程序执行结束,系统的整体负载下降,会影响到 S-Bridge 效果, S-Bridge 在系统负载重的情况
         下效果会更加明显.1B-1S 和 3B-1S 有相似的效果趋势,平均性能提升均超过 70.3%.基于相同的 CFS 调度算法,
         相比于在 X86 平台(如图 6 和图 7 所示),S-Bridge 在 ARM 平台上效果更加明显,因为 ARM 平台上不同类型的
         CPU 核微架构差异更大,而 X86 平台上仅是频率的差异.因此,实验结果总结如下.
             •   基于 CFS,S-Bridge 集成后在很大程度上减少了异构环境下调度的随机性,所有程序的平均执行性能均
                有明显的提升.S-Bridge 对于没有考虑异构的调度算法效果明显;
             •   S-Bridge 在系统负载重的情况下效果会更加明显;
             •   S-Bridge 对于微架构差异大的异构处理器效果会更加明显.
   346   347   348   349   350   351   352   353   354   355   356