Page 136 - 《软件学报》2021年第8期
P. 136

2418                                   Journal of Software  软件学报 Vol.32, No.8,  August 2021

                    7   通过式(9)计算回报值
                    8   对式(12)进行梯度下降来更新参数θ
                    算法的输入为新的任务(即应用程序),输出结果为任务所分配的处理器.基本流程如下:
                    •   当一个新的应用程序进入系统,ReLeTA 首先获取系统状态;
                    •   随后,使用ε-greedy(第 2 行~第 5 行)策略来确定任务分配结果:根据获取的当前系统状态计算所有可能
                        执行的动作的 Q 值,以ε的概率随机选择动作,以 1−ε的概率选择当前 Q 值最大的动作;
                    •   然后,智能体根据所选动作来设置任务的 CPU_affinity,将任务绑定到对应的内核;
                    •   最后更新状态,并更新神经网络中的参数值.

                 5    实   验

                    为了验证 ReLeTA 的性能,我们通过大量基于真实硬件平台的实验对所提出方法进行了全方位的评估,并
                 与现有的几种方法进行了对比.相比于之前的很多方法采用系统模拟和数值模拟的实验方式,在真实系统上的
                 评估更能反映出各个方法的实际效果.

                 5.1   实验配置
                    (1)  实验环境
                    为了验证所提出方法的有效性和可扩展性,本次实验采用了 3 种不同的计算机硬件平台进行实验,表 1 列
                 出了 3 种实验平台的配置.本次实验中使用的操作系统均为 Ubuntu 18.04,内核版本为 4.15.0.

                                           Table 1    Computer configuration information
                                                   表 1   计算机配置信息
                                平台              平台 1            平台 2               平台 3
                                CPU         Intel Core i5-3230M   Intel Core i7-4790   Inter(R) Xeon(R)Silver 4210
                              内核数量                2               4                 10×2
                           最大运行频率(GHz)           3.2             3.6                2.2
                             Memory(GB)           4               8                 126

                    (2)  测试程序
                    本次实验采用了 Parsec 程序集       [26] ,Parsec 程序集中的程序种类多样,能充分代表计算机中常见的各种不同
                 类型的程序,因此被广泛地用于计算机系统性能测试.为了验证算法在不同程序集下的效果,我们使用表 2 中的
                 不同程序以及不同的程序输入来组成更加多样化的测试集,随机生成 3 任务组合、5 任务组合、8 任务组合、
                 15 任务组合这 4 种.为了保证实验的公平性,对每个任务组我们通过随机生成一个时间间隔(时间间隔介于
                 0.1s~1.6s 之间)来生成一个程序调度序列,然后对不同的方法使用相同的序列.对于不同的对比实验,我们针对
                 实验需求采用了不同的温度采集方法,在后面的实验会进行具体说明.实验中所用到的测试任务信息和输入信
                 息展示在表 2,与 Parsec 程序集相关的输入信息不在此处进行详细地描述.
                                                 Table 2    Test tasks and inputs
                                                   表 2   测试任务和输入
                                     编号         任务名称                   输入
                                      0        blackscholes   test,simsmall,simmedium,simlarge
                                      1          canneal             test,simlarge
                                      2          debup               Test,simlarge
                                      3          facesim             test,simlarge
                                      4          ferret              test,simlarge
                                      5        fluidanimate          test,simlarge
                                      6          fremine             test,simlarge
                                      7        splash2x.fmm             test
                                      8      splash2x.radiosity     test,simmedium
                                      9     splash2x.water_spatial  test,simmedium
                                      10         X264                simmedium
   131   132   133   134   135   136   137   138   139   140   141