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

许瑞  等:面向多读/写头磁畴壁存储器的优化研究                                                         2737


         算法相较于 SSDP 算法移动次数平均减少了 97.3%,相较于 S-DBC-P 算法移动次数平均减少了 85.6%;本文提出
         的 ILP 模型相较于 SSDP 算法移动次数平均减少了 94.8%,相较于 S-DBC-P 算法移动次数平均减少了 75.6%.
                                    Table 4  Performance comparison for 8-port
                                          表 4  8 个 port 的性能比较
                             SSDP    S-DBC-P           GISDP                 ILP
                     基准      移动    移动     相对    移动     相对      相对    移动     相对      相对
                     测试      操作    操作    SSDP   操作    SSDP   S-DBC-P  操作   SSDP   S-DBC-P
                     程序      次数    次数    减少(%)   次数  减少(%)   减少(%)   次数   减少(%)   减少(%)
                     epic    8 342  1 019   87.8   165  98.0   83.8   434   94.8    57.4
                   ghostscript  3 275  618  81.1  64   98.0    89.6   204   93.8    67.0
                     jpeg    4 111  630   84.6   116   97.2    81.6   84 *  98.0    86.7
                     mesa    5 207  719   86.2   136   97.4    81.1   98 *  98.1    86.4
                     mpeg    8 888  1 383   84.4   250  97.2   81.9   156 *  98.2   86.4
                    pegwit   1 688  455   73.0   65    96.1    85.7   50 *  97.0    88.7
                     pgp     2 991  1 024   65.8   89   97.0   91.3   383   87.2    62.6
                     rasta   3 208  829   74.2   82    97.4    90.1   273   91.5    67.1
                  平均减少(%)     −     −     79.6   −     97.3    85.6   −     94.8    75.6

             从 3 个表中可以看出:ILP 只有在配备 8 个读/写头的磁畴壁存储器上的实验结果有求出最优结果的情况,
         且本文的 GISDP 算法所求得结果与 ILP 最优结果相近.如表 4 中基准测试程序 pegwit 的结果,GISDP 算法的移
         动次数分别相较于 SSDP 算法和 S-DBC-P 算法减少了 96.1%和 85.7%,ILP 模型的移动次数分别相较于 SSDP
         算法和 S-DBC-P 算法减少了 97.0%和 88.7%,所以本文的 GISDP 算法可以在多项式时间内求得近似最优解.在
         配备 2 个读/写头和 4 个读/写头的磁畴壁存储器上的实验结果均没有在 12 小时内找到最优解,所以这两个表中
         的 ILP 结果均是 12 小时得到的局部最优解.
             在本文提出的 ILP 模型中,ILP 的约束条件的数量是固定的,影响 ILP 求解效率的主要因素是输入的 IAFG
         G 中|V|,|E|和|D|的大小以及读/写头的数量.当读/写头的数量为 2 时,在满足依赖关系的前提下,对指令进行调度
         和数据进行放置,相当于是进行全排列,并选择最优的情况.当|E|很小,即依赖关系很少,满足依赖的排列数接近
         全排列.当|V|和|D|很大时,全排列的复杂度使得 ILP 无法在多项式时间内求得最优解决策略.不过,当读/写头的
         数量为 8 时,一部分基准测试程序的 ILP 收敛速度有所提高(如表 4),但是所需时间仍不能与启发式算法所需的
         时间相比.可以看出:ILP 模型虽然可求最优解,但是不能在多项式时间内完成,不适合用在数据密集型应用的系
         统中.
             表 5 是在配备 2 个读/写头的磁畴壁存储器上 GISDP 算法中三段算法分别得到的结果,其中,算法 2 相对于
         算法 1 移动次数平均减少了 9.81%,算法 3 相对于算法 2 移动次数平均减少了 9.43%.从表 5 中可以看出:部分基
         准测试程序在算法 2 及算法 3 中,移动次数减少了 0%,是因为不同的测试程序具有不同的数据访问特性;并且算
         法 2 和算法 3 均是在自身所求得的结果与前一段算法所求得的结果中选取更优的结果.因此对于部分应用,会
         在算法 1 或算法 2 中就求得近优解.
                           Table 5    Performance comparison for 3-segment of GISDP (2-port)
                                   表 5   GISDP 的三段算法性能比较(2 个 port)
                                 算法 1            算法 2                    算法 3
                    基准测试程序      移动次数    移动次数     相对算法 1 减少(%)   移动次数     相对算法 2 减少(%)
                        epic      630     630          0          630          0
                      ghostscript   356   254         28.7        208         18.1
                        jpeg      911     784         13.9        525         33.0
                        mesa      943     883         6.4         883          0
                       mpeg      1 860    1 860        0          1 630       12.4
                       pegwit     277     243         12.3        217         10.7
                        pgp       522     501         4.0         495         1.2
                        rasta     598     519         13.2        519          0
                     平均减少(%)       −       −          9.81         −          9.43

             实验结果显示:本文所提的算法可以找到较优的指令调度和数据放置策略,并且有效地减少了总的移动次
   111   112   113   114   115   116   117   118   119   120   121