Page 348 - 《软件学报》2020年第9期
P. 348
赵姗 等:S-Bridge:性能非对称多核处理器下负载均衡代理机制 2969
体设计如图 2 所示,主要核心功能由 3 部分组成:架构性能收集器、CPU 异构配置收集器和规则生成器.规则生
成器基于一定的模型进行适配规则的产生,模型是独立可替换的,本文采用自己提出的可扩展负载模型.
Fig.2 Overall design of S-Bridge
图 2 S-Bridge 总体设计
架构性能收集器的主要目的是在线程进行上下文切换(比如调度和迁移)时,对线程的性能数据进行收集、
分析和预测.它提供一系列回调函数用于实现如下功能.
(1) 从硬件性能监控计数器(PMU)获取性能数据;
(2) 将这些性能数据,比如 LLC 访问缺失率、执行指令数和指令的周期数等,转化为内部定义的数据结构
进行保存;
(3) 基于上面收集的信息进行线程性能数据的分析与预测.在线程调度和迁移的时间点,调用相应的回调
函数.
CPU 异构配置收集器提供 API 来检测不同类型 CPU 核的参数,如 CPU 核 ID、缓存大小等,根据收集的信
息设置 CPU 核处理能力的初始值.
规则生成器主要是接收架构性能和 CPU 异构配置收集器的数据,基于可扩展负载模型进行规则的产生.本
文主要基于可扩展负载的度量模型计算线程的扩展因子,并更新扩展因子矩阵.扩展因子矩阵用来保存每个线
程在不同核上的负载扩展因子,并通过接口传给调度器使用,在负载均衡的时候,通过影响线程负载的计算,反
映每个线程适应异构多核处理器环境的真实负载.同时,出于性能方面的考虑,扩展因子矩阵主要是用来避免对
相同任务性能的重复度量,对于运行的任务,如果在矩阵中已经存在相应的项,则不再进行度量.
3.2 可扩展负载度量模型
如上所述,S-Bridge 结构的实现基础是可扩展负载度量模型.如第 2.1 节讨论:在同构多核环境下,由于核设
计对称,传统基于优先级和平均 CPU 利用率的负载度量方法不需考虑核处理能力和任务特性的区别;然而在异
构多核环境下,由于核微架构设计不同,任务资源需求不同,在不同类型核上的性能表现有很大差异,任务在各
类型核上形成的负载也有差异.以上两种因素直接影响负载均衡决策,因此,本研究提出一种新的负载度量模
型,基于对任务运行性能的经验分析,在原有负载度量方法的基础上进行扩展,考虑不同类型核之间处理能力差
异(CPU 因子)以及任务在不同核上的性能差异(任务因子),从而实现异构感知.该模型包括两个部分.
(1) 任务的性能模型.基于 CPI(cycle per instruction) [30] 栈模型对于任务的计算需求进行度量,即任务执行
所有指令的时钟周期中,真正执行(而不是由于访存或者其他 CPU 资源不足所阻塞)所占用的时钟周