Page 219 - 《软件学报》2026年第6期
P. 219
2538 软件学报 2026 年第 37 卷第 6 期
时间内相比串行机制获得了约 11.9% 的平均性能提升. 然而, 基于 ThreadPool 的并行机制需要占用大量的前端机
资源进行多线程编译, 一方面限制了调优任务的可扩展性, 另一方面也会影响前端机上其余的应用构建和作业管
理等任务的性能.
SRTuner 和 Bliss 均采用串行搜索机制, 二者效果整体上介于 PureRandom 与 OpenTuner-Parallel 之间, 最优性
能较 OpenTuner 平均提升约 6.3% 和 6.7%. SWTuner 在 OpenTuner-Parallel 的基础上实现了分布式元搜索, 通过作
业管理系统调度被调优程序进行本地编译和运行, 进一步提升了可扩展性, 能够在有限的时间内探索更大的搜索
空间, 这意味着它可以在相同的调优时间内发现更多的潜在优化机会. 这种分布式优化方法不仅提高了搜索效率,
还增强了搜索的全面性和准确性, 尤其是在面对复杂且庞大的搜索空间时更为明显. 从图 6 中可以看出, 相比
PureRandom 和 OpenTuner, SWTuner 的分布式元搜索策略总是能够发现更优的编译选项组合, 且对应的性能均优
于-O3 基准性能, 最大提升幅度达 20.55% (使用 LLVM 编译的 CG 测试用例).
图 7 展示了分布式元搜索策略在可扩展性方面的测试结果. 在强可扩展性的评估中, 当参与计算的节点数量
增加时, 各调优任务的执行时间呈现出明显的线性下降趋势. 这一结果表明通过增加计算节点的数量能够有效地
提升分布式元搜索策略的处理效率. 而在弱可扩展性的测试场景下, 随着任务规模与计算节点数量的同步增长, 执
行时间变化较为平缓. 这意味着在任务负载和可用资源同步增加的情况下, 分布式元搜索策略依然能够保持较好
的性能稳定性.
4 096 4 096
BT-GCC BT-GCC
2 048 CG-GCC 2 048 CG-GCC
BT-LLVM 1 024 BT-LLVM
执行时间 (s) 512 执行时间 (s) 256
CG-LLVM
1 024
CG-LLVM
512
128
256
64
128
32
64 16
2 4 8 16 32 64 2 4 8 16 32 64
节点数 节点数
(a) 强可扩展性测试 (b) 弱可扩展性测试
图 7 分布式元搜索策略的可扩展性测试结果
表 4 统计了分布式元搜索策略下不同搜索技术的使用次数占比情况. 其中, UGM 表示均匀贪婪变异, NGM
表示正态贪婪变异, DEM 表示差分进化变异, RNM 表示随机单纯形法. 均匀贪婪变异 (UGM) 和正态贪婪变异
(NGM) 可能因其贪婪策略在较短时间内收敛到一个较为满意的解, 因此它们在上述调优过程中更受欢迎. 差分进
化变异 (DEM) 虽然具备更强的全局搜索能力, 但在某些情况下可能需要更多的迭代才能达到较好的解, 因此其使
用比例相对较低. 随机单纯形法 (RNM) 作为随机方法的一种, 可能在搜索过程中引入了过多的随机性, 导致它在
某些情况下不能很好地收敛到最优解. 然而, 具体选择哪种搜索方法不仅取决于算法本身的特性, 还与特定的优化
目标和实际应用场景密切相关. 因此, 在不同的条件下, 各种搜索方法的有效性和适用性可能会有所不同.
表 4 分布式元搜索策略下不同搜索技术的使用次数占比 (%)
编译器 测试用例 搜索策略 Iter0 Iter1 Iter2 Iter3 平均
UGM 56.50 46.20 66.70 66.70 59.03
NGM 30.30 34.70 22.80 20.30 27.03
BT
DEM 12.10 18.00 10.00 12.00 13.03
RNM 1.10 1.10 0.50 1.00 0.93
GCC
UGM 37.30 40.40 57.10 50.80 46.40
NGM 49.40 46.60 29.40 38.90 41.08
CG
DEM 12.20 12.00 12.70 9.20 11.53
RNM 1.10 1.00 0.80 1.10 1.00

