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

赵姗  等:S-Bridge:性能非对称多核处理器下负载均衡代理机制                                               2977


















                 Fig.11    Distribution of speedup under different frequencies on the ARM big.LITTLE platform,
                             the effect of the 0.72~1.608G is more significant than the others
                          图 11   在 ARM 平台上不同时钟频率设置下的测试程序加速比分布,
                                   大小核的频率为 1.608G/0.72G 时效果最明显

         4.3.3    S-Bridge 的系统开销
             如第 3.3 节所述,S-Bridge 在原有 Linux 系统上的增强实现主要包括与调度器交互接口和与硬件性能事件
         寄存器(PMC)交互的部分.调度器在进行上下文切换(调度周期到达、新建任务、唤醒任务、任务迁移)时,进行
         任务性能信息的统计与分析,生成扩展的负载均衡规则.伴随着所调度任务数量的增加及任务大小的增加,任务
         上下文切换次数增加,因此,S-Bridge 实现的时间复杂度与调度算法时间复杂度相同.以 CFS 调度算法为例,复杂
         度为 O(n),本身与调度器交互并不会带来太大的开销.另外,与硬件交互的部分主要是访问 PMCs 和特定的内核
         数据结构,用来保存每个新线程的性能信息.文献[34]的实验表明,与硬件交互的开销一般少于 1 000 个时钟周期
         (对于程序执行来说,时间的影响微乎其微),这对于内核对调度处理的开销来说是非常小的影响.
             本文根据上面的分析进行实验,主要针对原始的 CFS 算法和 S-Bridge 使能情况下的 CFS 算法的性能进行
         对比,跟第 4.2 节实验不同的是:S-Bridge 的各个组件都在工作,但是无效 S-Bridge 生成的规则,使其不对调度决
         策产生任何影响,因此原始 CFS 算法与 S-Bridge 生效的 CFS 算法由于调度对程序执行的影响应该没有差异.
         选取的测试工作负载是并发执行 10 000 次的空函数,在频率固定的核上运行,在原始 CFS 算法的场景下,工作负
         载完成的时间 690.07s,在 S-Bridge 使能的情况下为 692.35s.由于单次执行空函数的时间少于 0.008s,由于系统
         进程的影响,在工作负载执行阶段所发生的上下文切换将大于几十万次,由此验证 S-Bridge 对于每次切换所造
         成的开销影响是比较小的.
         5    结   论

             本文针对异构多核处理器环境中传统负载均衡问题,提出了一种新的负载均衡代理机制 S-Bridge.该方法
         的核心思想是:在系统层面提出异构感知的接口和参数,在不修改具体调度算法的前提下,协助已有调度器进行
         异构环境的适配,提高所有可替换调度器在异构处理器环境的决策正确性;同时,为调度器开发提供异构接口支
         持.本文对 S-Bridge 在不同内核版本的 ARM 和 X86 平台上进行实现和验证,实验表明:在适配未针对异构处理
         器优化的调度算法时,S-Bridge 具有明显效果,平均性能提升超过 15%,部分情况下可超 65%;而且,S-Bridge 与
         HMP 适配时仍继承了 HMP 本身的优化效果,并且在此基础上进行不同任务类型的适配.但是与 HMP 这种专用
         调度器相比,在完全同构负载的情况下,S-Bridge 效果并不明显.所以,如何同时发挥 S-Bridge 平台特性以及 HMP
         等异构环境专用调度器的优势,获得进一步调度优化,以及结合动态电源管理技术(比如 DVFS)向能效的扩展,
         是本研究未来的工作方向.而且,伴随着人工智能,边缘、近似计算等技术的兴起,数据融合的时代已经到来,即使
         在移动终端也要进行媒体信息识别和处理,对于系统的能效要求越来越高.除了单一指令集(single ISA)异构系
         统,也出现通用处理器(CPU)和加速协处理器(GPU、DSP、媒体处理器等)协同的异构指令集(Heterogeneous ISA)
   351   352   353   354   355   356   357   358   359   360