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)