Skip to main content
QUICK REVIEW

[论文解读] A parallel framework for reverse search using mts

David Avis, Charles Jordan|arXiv (Cornell University)|Oct 25, 2016
Algorithms and Data Compression参考文献 5被引用 6
一句话总结

本文提出 mts,一种通用的 C 框架,通过封装遗留的顺序代码,以最少的代码修改实现了反向搜索算法的并行化。利用 MPI,mts 通过在工作节点之间分发树搜索任务、动态分配子问题预算,并通过自适应作业调度和消息追踪高效管理负载均衡,在 192 个核心上实现了接近线性的加速比。

ABSTRACT

We describe mts, which is a generic framework for parallelizing certain types of tree search programs, that (a) provides a single common wrapper containing all of the parallelization, and (b) minimizes the changes needed to the existing single processor legacy code. The mts code was derived from ideas used to develop mplrs, a parallelization of the reverse search vertex enumeration code lrs. The tree search properties required for the use of mts are satisfied by any reverse search algorithm as well as other tree search methods such as backtracking and branch and bound. mts is programmed in C, uses the MPI parallel environment, and can be run on a network of computers. As examples we parallelize two simple existing reverse search codes: generating topological orderings and generating spanning trees of a graph. We give computational results comparing the parallel codes with state of the art sequential codes for the same problems.

研究动机与目标

  • 为解决并行化遗留顺序树搜索代码的挑战,特别是用于反向搜索、回溯法和分支限界法的代码。
  • 通过提供一个可重用的通用并行化封装器,降低对深度嵌套、经过充分测试的顺序代码进行修改的复杂性和风险。
  • 在不修改核心枚举逻辑的前提下,实现在分布式集群上高性能的反向搜索算法并行执行。
  • 通过引入自适应预算分配和消息追踪机制,支持在分布式树搜索中实现高效的负载均衡和动态作业调度。

提出的方法

  • mts 使用最小接口封装现有的顺序反向搜索代码,仅需定义一个本地搜索函数 f 和邻接关系查询接口 Adj。
  • 该框架使用 MPI 实现分布式执行,主进程负责管理作业列表,并将子问题分发给工作节点进程。
  • 每个工作节点执行子树的深度优先遍历,使用受 -scale 和 -maxnodes 参数控制的动态预算策略以实现负载平衡。
  • 工作节点通过 bts() 函数向主节点报告未探索节点的数量,使主节点能够跟踪进度并调整作业分发。
  • 系统维护工作节点活动和作业列表大小的直方图,并提供可视化脚本(plotL.gp)以指导性能调优的参数设置。
  • 从 bts() 输出中生成子问题大小的频率文件,用于指导最优预算设置,另有脚本(plotD.gp)用于可视化作业大小分布。

实验结果

研究问题

  • RQ1能否设计一种通用的、轻量级封装框架,在不修改其核心逻辑的前提下并行化多种反向搜索算法?
  • RQ2当子问题规模差异显著且事先未知时,如何在分布式树搜索中实现动态负载均衡?
  • RQ3哪些参数设置(如 -scale、-maxnodes)能在不同输入类型和集群配置下实现最佳性能?
  • RQ4该框架在最小调优条件下,能在多大程度上实现不同反向搜索问题的接近线性加速比?
  • RQ5该框架能否扩展到其他树搜索范式(如分支限界法或 SAT 求解)并实现类似的性能提升?

主要发现

  • 在 192 核集群上,mts 在两个反向搜索问题(拓扑排序和生成生成树)上均实现了接近线性的加速比。
  • 使用默认参数时,框架生成的直方图显示主节点难以让所有工作节点保持忙碌,表明因作业预算过小导致资源利用率低下。
  • 将 -maxnodes 增加至 1,000,000 导致作业列表过早耗尽,造成大量空闲时间,表明过大的预算会降低负载均衡效率。
  • 通过 -scale 200 和 -maxnodes 10,000 进行调优后,总作业数减少了一半以上,性能相比默认设置提升了约 5%。
  • 子问题大小分布(来自频率文件)显示,许多作业对应于小型子树,表明可通过剪枝进一步提升效率。
  • 框架生成性能直方图和子问题大小分布图的能力,使得参数调优更加有效,证明了其在真实场景中的实际可用性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。