Traditional lock-free parallel algorithms for combinatorial optimization problems, such as shortest paths, stable matching, and job scheduling require programmers to write problem-specific routines and synchronization code. We propose a general-purpose lock-free runtime, LLP-FW that can solve all combinatorial optimization problems that can be formulated as a Lattice-Linear Predicate by advancing all forbidden local states in parallel until a solution emerges. The only problem-specific code is a definition of the forbiddenness check and a definition of the advancement. We show that LLP-FW can solve several different combinatorial optimization problems, such as Single Source Shortest Paths (SSSP), Breadth-First Search (BFS), Stable Marriage, Job Scheduling, Transitive Closure, Parallel Reduction, and 0-1 Knapsack. We compare LLP-FW against hand-tuned, custom solutions for these seven problems and show that it compares favorably in the majority of cases.
翻译:针对组合优化问题(如最短路径、稳定匹配和作业调度)的传统无锁并行算法要求程序员编写特定于问题的例程和同步代码。本文提出一种通用无锁运行时系统LLP-FW,该系统能够通过并行推进所有禁止局部状态直至解出现,来解决所有可表述为格线性谓词的组合优化问题。唯一需要特定问题定义的代码仅为禁止性检查与状态推进规则。我们证明LLP-FW能够求解多种组合优化问题,包括单源最短路径、广度优先搜索、稳定婚姻问题、作业调度、传递闭包、并行归约及0-1背包问题。通过将LLP-FW与针对这七个问题手工优化的定制解决方案进行对比,结果表明其在多数情况下具有可比性能。