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 资源不足所阻塞)所占用的时钟周
   343   344   345   346   347   348   349   350   351   352   353