Page 213 - 《软件学报》2026年第6期
P. 213
2532 软件学报 2026 年第 37 卷第 6 期
婪策略实现探索与利用之间的平衡; 正态贪婪变异利用正态分布来指导参数变异; 差分进化变异是一种基于群体
智能的技术, 通过个体间的差异引导搜索方向; 而随机单纯形法则是一种无需依赖梯度的过程, 通过调整多维三角
形的顶点来迭代寻优. 这些多样化的搜索方法为解决复杂的编译调优问题提供了灵活的选择.
基于 AUC-Bandit 的元搜索策略通过综合考虑历史性能和加速效果, 能够在有限的时间内生成大量有潜力的
搜索样本. 这种方法非常适合于超级计算机环境下的编译调优: 元搜索策略生成的大量搜索样本可以被同时分配
到多个计算节点上进行编译和执行, 从而充分利用分布式计算资源提升搜索效率.
图 3 展示了 SWTuner 的分布式元搜索策略的执行流程. 首先, AUC-Bandit 元搜索驱动根据滑动窗口中各搜
索技术的 AUC 值, 选择一组当前最优的搜索技术, 生成搜索样本集合{(x i , t i ): i=1, 2,…, p}, 其中 x i 表示编译选项的
组合, t i 表示该选项组合的实测性能 (初始化为 inf), p 表示并行规模. 然后, 元搜索驱动将每个搜索样本 (x i , t i ) 视作
一个计算任务, 通过并行作业管理系统将任务提交到各个计算节点, 并根据可用资源和任务负载情况进行动态调
度. 计算节点从全局文件系统中获取需要编译的源代码后, 按照给定的编译选项组合 x i =( , i o i
o o ,…, ) 进行本地编
i
1 2 n
译及运行, 完成对性能结果 t i 的更新. 最后, 当计算节点完成任务后, 元搜索驱动会将搜索样本 (x i , t i ) 上传至结果
数据库. 在下一轮迭代中, 元搜索驱动从结果数据库中读取历史样本, 评估编译和运行的效果, 并根据评估结果动
态地调整搜索技术, 从而形成了一个正向的反馈循环. 这种分布式的编译和运行机制充分利用了超级计算机的软
硬件资源, 从而提高了元搜索策略的效率和质量.
外
围 AUC-Bandit 全局文件
环 结果数据库 元搜索驱动 系统 (NFS)
境
并行作业管理系统
计
算
节 编译 运行 编译 运行 … 编译 运行
点
图 3 分布式元搜索策略的执行流程图
2.2 机器学习模型指导的性能预测
分布式优化能够有效缓解元搜索策略的性能瓶颈, 但是频繁地本地编译和运行也会引入额外的功耗开销. 随
着超级计算机系统规模的不断增加, 功耗问题已经成为限制其可扩展性的主要瓶颈之一 [28] . 本文通过对编译选项
与程序性能的关系进行建模, 能够有效指导后续的调优过程, 从而降低实际执行所需的功耗.
目前针对性能评估的研究主要依赖于使用深度学习方法构建的复杂而强大的模型 [15−17] , 这些模型为了保证准
确性和泛化性, 往往需要大量样本进行训练. 在真实的应用场景中, 被调优程序虽然可能会执行多次, 但是其输入
数据的类型和大小往往会随着时间的推移而改变, 并且算法实现也可能发生增量改进, 从而导致最优编译选项组
合的改变. 针对程序的某一版本或配置进行大量的真实采样, 需要占用大量的计算资源和机时, 这在实际的编译调
优任务中往往难以满足 [29] .
随机森林是一种集成学习方法, 它通过构建多棵决策树来提高模型整体的预测精度 [30] . 随机森林模型中的每
棵决策树都是独立训练的, 并且在训练过程中使用了特定的技术来增加模型的多样性并减少过拟合风险. 相较于
深度神经网络, 其资源占用更少, 训练和推理速度更快, 并且在稳定性以及小数据集适应性等方面均具有一定优
势. 同时, 相比连续特征, 编译选项这样的二值或多值特征在决策树构建阶段的特征选择和数据分割中开销更小,
因此模型的训练效率更高.

